nhslogo CS4132 Data Analytics

Metacritic Games Analysis by Mahir Shah¶

Important Note: Please keep your report concise and relevant (i.e. show only relevant steps and visualizations used to answer your research questions).

Table of Content (with relevant hyperlinks to sections)¶

  1. Motivation & Background
  2. Summary of Research Questions & Results
  3. Dataset
  4. Methodology
    • Data Acquisition
    • Data Cleaning
    • EDA
  5. Results Findings & Conclusion
  6. Recommendations or Further Works
  7. References
  8. Appendix

Motivation and Background¶

Give an overview of the project, motivation, background and goals.

Games as an entertainment intustry has blown up in the past few decades, with it overtaking Hollywood as the highest grossing entertainment industry. Gaming has also been substantially driven by ratings and sales for each games. These can be due to or affected also by the date they are released, its genre, and also how much searches a certain game may have had. As a result, I will like to look at games from metacritic, see how they have done over multiple genres, platforms, years and also analyse the amount of searches they had in different countries.

Summary of Research Questions & Results¶

Repeat your research questions in a numbered list. After each research question, clearly state the answer/conclusion you determined. Do not give details or justifications yet — just the answer
  1. Question 1: What are the genres with the most games released? What are the genres which have the most interest about in Google? Is there any correleation between both types of genres?

    • The top 3 genrews with the most games released was Action, Shooter and Action Adventure. The top 3 genres with the most interest was Puzzle, Football and 3D. There is a overlap of 4 games only for the top 15 of both, which are Puzzle, 3D, Role-playing, Shooters; with all of them having high number of years where they were part of the top 15 genres with the most interest. The more suprising thing is the lack of Action

  2. Question 2: Do certain platforms more games? Do their median rating also vary over years and genres?

    • Yes, PC has the most games released for it, with Stadia having the least games released. For 2D games, the the DreamCast has two of the most highest median rating. Xbox Series X however has the highest overall median rating for all genres. The rating from most of the other genres and platforms are in the 65 to 77 range, with some being less and more. The lowest was a 54 for Adventure in the DreamCast. The PlayStation has the highest number of low rating genres (Less than 65) with 5 while the PlayStation 5 has the highest number of high rating genres (More than 77) with 9 games. The highest median rating was for the Wii in 2017 with a 97, while the lowest median rating was the PS1 in 2003, with a 25. The most common ratings fall in the range of 70 to 80, which was much higher than the one of platforms and genres.

  3. Question 3: When do companies release their games? Does the date of release affect its sales?

    • The median sales is 0.28 10e6, while the mean sales is 1.26 10e6. The range is 237.99 10e6 while the IQR is 0.89 10e6. There are a lot of outliers that skews the range and mean severly. There is aa upside down parabola shape from the April of one year to the April of another, with it repeating again and again until 2010, with March being the least for 2008. We can safely say that April from these years had the lowest. The maximum for this parabola was generally October or November, with it being other months as the humps became less pronounced.

  4. Question 4: How is the rating distributed? How has it changed over years and over different genres?

    • The distributuon is skewed to the left and it is unimodal, with the mode in the histogram being the 72 to 80 bin.. The median rating is 72, while the mean sales is 70. The range is 87 while the IQR is 13. There are a lot of outliers that skews the range severly. All of the outliers have much less rating than the the lower whisker in the violin plot. The median rating of all the years are very close to the median rating of all games. 2022 has a much higher median rating than the median, while 2007 has the least. There is also another trend where from 2017 to 2022, the median rating for the year was higher than the median rating of all games. However, from 2005 to 2011, the median rating was lower than the median rating of all games

  5. Question 5: What are the most searched genres over the years? What are the most searched genres and games over different regions over the years?

    • Puzzle has the highest perentage accross all the years, except for 2014 to 2010, where 3D games had the highest percentage of searches. It was also the only genre in all the years. From 2022 to 2017, board games had the second highest percentage. There is a lot of volatility in the highest search genre every year, with puzzle being the 1 main stay. For games, each year, there is one break out game that has the most countries that the search it most.

Dataset¶

Numbered list of dataset (with downloadable links) and a brief but clear description of each dataset used. Draw reference to the numbering when describing methodology (data cleaning and analysis).
  1. https://www.metacritic.com/browse/games/score/metascore/year/all/filtered?year_selected=2022&view=detailed&sort=desc&page=0 This data contains the top rated PC games for every year. From all of the games, we will scrape the name, platform and year, and also the link to the review of the game. We will scrape all of the pages for all the years up to 2000.

    1.1 https://www.metacritic.com/game/xbox-series-x/elden-ring
    This is the link for each game. From it we scrape the day, month and genres of the game. Finally we also scrape the metascore of the game

  2. https://trends.google.com/trends/explore?q=%2Fm%2F03lm3
    This data is used to see the popularity of the games worldwide. We will retrive both the interest over time and interest by region portions

    2.1 https://pypi.org/project/pytrends/ The python library that helps me request Google Trends for data

  3. https://www.vgchartz.com/games/games.php?page=1&results=200&order=Sales&ownership=Both&direction=DESC&showtotalsales=1&shownasales=0&showpalsales=0&showjapansales=0&showothersales=0&showpublisher=0&showdeveloper=0&showreleasedate=0&showlastupdate=0&showvgchartzscore=0&showcriticscore=0&showuserscore=0&showshipped=1
    This data shows the game sales for most of the games. From this webpage, the Total Shipped and Total Sales will be scraped. From this, whichever is not null will be used as the sales of a game. I am scraping all the pages until the sales are 0.00 m as they are mostly outliers due to being poorly made cheap games, or they have no data at all.

Methodology¶

You should demonstrate the data science life cycle here (from data acquisition to cleaning to EDA and analysis etc).

Data Acquisition¶

Display the data which will be used in the project. The data should be saved in .xlsx or .csv format to be submitted with the project. If webscraping has been done to obtain your data, save your webscraping code in another jupyter notebook as appendix to be submitted separately from the report. Import and display each dataset in a dataframe. For each dataset, give a brief overview of the data it contains, and explain the meaning of columns that are relevant to the project.
In [1]:
import pandas as pd
from tqdm.auto import tqdm 
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import plotly.graph_objects as go
from scipy import signal
from plotly.subplots import make_subplots
import geopandas as gpd
from geopandas import GeoDataFrame
from IPython.display import display

The code for the webscraping of the data will be in the Appendix.

In [2]:
pd.read_csv('metaScrape.csv', index_col=0)
Out[2]:
name data year month link
0 Elden Ring Xbox Series X 2022 NaN https://www.metacritic.com//game/xbox-series-x...
1 Elden Ring PlayStation 5 2022 NaN https://www.metacritic.com//game/playstation-5...
2 Portal Companion Collection Switch 2022 NaN https://www.metacritic.com//game/switch/portal...
3 Elden Ring PC 2022 NaN https://www.metacritic.com//game/pc/elden-ring
4 The Stanley Parable: Ultra Deluxe Xbox Series X 2022 NaN https://www.metacritic.com//game/xbox-series-x...
... ... ... ... ... ...
19480 Resident Evil: Survivor PlayStation 2000 NaN https://www.metacritic.com//game/playstation/r...
19481 ECW Anarchy Rulz Dreamcast 2000 NaN https://www.metacritic.com//game/dreamcast/ecw...
19482 Duke Nukem: Land of the Babes PlayStation 2000 NaN https://www.metacritic.com//game/playstation/d...
19483 Mortal Kombat: Special Forces PlayStation 2000 NaN https://www.metacritic.com//game/playstation/m...
19484 HBO Boxing PlayStation 2000 NaN https://www.metacritic.com//game/playstation/h...

19485 rows × 5 columns

This dataframe is the original scraping of all the games in metacritic. name column contains the name of the game; data column contains the platform the game was released; year column contains the year it was released; month column is NaN, as it will be collected later in another scraping, which is using the links in the link column which has the metacratic link of each game. This dataframe will be mainly used due to the data column, as it is the only dataframe where duplicate names are not removed, thus causing there to be one platform for each game

In [3]:
pd.read_csv('metaScrape3.csv', index_col=0)
Out[3]:
name data year month link index genre day rating Code
0 Elden Ring Xbox Series X 2022 Feb https://www.metacritic.com//game/xbox-series-x... 0 Role-Playing,Action RPG 25 96 /g/11h3z4_20j
2 The Stanley Parable: Ultra Deluxe Xbox Series X 2022 Apr https://www.metacritic.com//game/xbox-series-x... 2 Adventure,3D,First-Person 27 93 /g/11j53dfzz5
3 God of War (2018) PC 2022 Jan https://www.metacritic.com//game/pc/god-of-war 3 Action Adventure,Linear 14 93 /m/02qyf34
4 Immortality Xbox Series X 2022 Aug https://www.metacritic.com//game/xbox-series-x... 4 Adventure,General 30 90 Immortality
5 Cuphead in the Delicious Last Course Xbox One 2022 Jun https://www.metacritic.com//game/xbox-one/cuph... 5 Action,Platformer,2D 30 92 /g/11ghtdw1pq
... ... ... ... ... ... ... ... ... ... ...
12588 MTV Sports: Skateboarding featuring Andy Macdo... PlayStation 2000 Sep https://www.metacritic.com//game/playstation/m... 12588 Sports,Alternative,Skateboarding 12 40 /m/0kypkkl
12589 Resident Evil: Survivor PlayStation 2000 Aug https://www.metacritic.com//game/playstation/r... 12589 Action Adventure,Horror 30 39 /g/11hdvdpwm3
12590 Duke Nukem: Land of the Babes PlayStation 2000 Sep https://www.metacritic.com//game/playstation/d... 12590 Action,Shooter,Third-Person,Sci-Fi 19 37 /m/0977sd
12591 Mortal Kombat: Special Forces PlayStation 2000 Jun https://www.metacritic.com//game/playstation/m... 12591 Action,Beat-'Em-Up 30 28 Mortal Kombat: Special Forces
12592 HBO Boxing PlayStation 2000 Nov https://www.metacritic.com//game/playstation/h... 12592 Sports,Traditional,Boxing 20 26 /m/0kyn71x

12058 rows × 10 columns

This dataframe is the continuation of the first one. It includes the data for all the games in metacritic. name column contains the name of the game; data column contains the platform the game was released; year column contains the year it was released; month column contains the month the game was released; link is the link to the game's metacritic page; index is just the repeated index, which was useful in the process of interacting with pytrends; genre column contains all the genres of the game; day column contains the day of the month the game was released; rating contains the metacritic score of the game which was given by critics; Code contains the google trends code of the game. If the game has no id, its name was put there. This dataframe was also used for rating, date and genre analysis.

In [4]:
pd.read_csv('cleaningMeta2.csv', index_col=0)
Out[4]:
name data year month link index genre day rating Code
0 Elden Ring Xbox Series X 2022 Feb https://www.metacritic.com//game/xbox-series-x... 0 Role-Playing,Action RPG 25 96 /g/11h3z4_20j
2 The Stanley Parable: Ultra Deluxe Xbox Series X 2022 Apr https://www.metacritic.com//game/xbox-series-x... 2 Adventure,3D,First-Person 27 93 /g/11j53dfzz5
3 God of War (2018) PC 2022 Jan https://www.metacritic.com//game/pc/god-of-war 3 Action Adventure,Linear 14 93 /g/11bzs2snwf
4 Immortality Xbox Series X 2022 Aug https://www.metacritic.com//game/xbox-series-x... 4 Adventure,General 30 90 Immortality
5 Cuphead in the Delicious Last Course Xbox One 2022 Jun https://www.metacritic.com//game/xbox-one/cuph... 5 Action,Platformer,2D 30 92 /g/11ghtdw1pq
... ... ... ... ... ... ... ... ... ... ...
10807 McFarlane's Evil Prophecy PlayStation 2 2004 Jun https://www.metacritic.com//game/playstation-2... 10807 Action,General 15 34 /m/0df0bb
10808 Coliseum PC 2004 Jan https://www.metacritic.com//game/pc/coliseum 10808 Strategy,Breeding/Constructing,General 6 32 Coliseum
10809 Forever Worlds - Enter the Unknown PC 2004 Apr https://www.metacritic.com//game/pc/forever-wo... 10809 Adventure,3D,First-Person,Fantasy,Fantasy 5 31 Forever Worlds - Enter the Unknown
10810 Fear Factor: Unleashed Game Boy Advance 2004 Nov https://www.metacritic.com//game/game-boy-adva... 10810 Action Adventure,Modern 17 30 /m/06zpymj
10811 Ping Pals DS 2004 Dec https://www.metacritic.com//game/ds/ping-pals 10811 Simulation,Miscellaneous,Virtual Life,Virtual,... 8 28 /m/056bxq

10297 rows × 10 columns

This dataframe is the continuation of the first one. It includes the data for all the games in metacritic. name column contains the name of the game; data column contains the platform the game was released; year column contains the year it was released; month column contains the month the game was released; link is the link to the game's metacritic page; index is just the repeated index, which was useful in the process of interacting with pytrends; genre column contains all the genres of the game; day column contains the day of the month the game was released; rating contains the metacritic score of the game which was given by critics; Code contains the google trends code of the game. If the game has no id, its name was put there. The code column was used to query google trends to get search data.

In [5]:
pd.read_csv('metaScrape4.csv', index_col=0)
Out[5]:
name data sales
0 Minecraft All 238.00m
1 Grand Theft Auto V All 170.00m
2 Wii Sports Wii 82.90m
3 PlayerUnknown's Battlegrounds All 70.00m
4 Mario Kart 8 Deluxe NS 46.82m
... ... ... ...
21371 Resident Evil 5: Gold Edition X360 0.00m
21372 Cradle Double Pack DS 0.00m
21373 Teslagrad PSV 0.00m
21374 Tetris: The Grand Master Ace X360 0.00m
21375 Championship Bowling XB 0.00m

21376 rows × 3 columns

This dataframe contains the sales data. The name column contains the name of the game; the column contains the platform the game was released on; the sales column contains the sales of the games. THis dataframe was used to make another dataframe, shown below.

In [6]:
pd.read_csv('sales.csv', index_col=0)
Out[6]:
name data_x year month link index genre day rating Code data_y sales
0 Elden Ring Xbox Series X 2022 Feb https://www.metacritic.com//game/xbox-series-x... 0 Role-Playing,Action RPG 25 96 /g/11h3z4_20j All 16.60
2 God of War (2018) PC 2022 Jan https://www.metacritic.com//game/pc/god-of-war 3 Action Adventure,Linear 14 93 /m/02qyf34 All 20.47
10 13 Sentinels: Aegis Rim Switch 2022 Apr https://www.metacritic.com//game/switch/13-sen... 10 Adventure,General 12 88 /g/11bw51r_lk PS4 0.50
17 Teenage Mutant Ninja Turtles: Shredder's Revenge Switch 2022 Jun https://www.metacritic.com//game/switch/teenag... 19 Action,Beat-'Em-Up,2D 16 87 /g/11mx31cjc_ All 1.00
19 Monster Hunter Rise PC 2022 Jan https://www.metacritic.com//game/pc/monster-hu... 22 Role-Playing,Action RPG 12 87 Monster Hunter Rise All 11.00
... ... ... ... ... ... ... ... ... ... ... ... ...
16687 Rally Challenge 2000 Nintendo 64 2000 Jun https://www.metacritic.com//game/nintendo-64/r... 12585 Driving,Racing,Rally / Offroad 30 41 /m/0fx9jm N64 0.04
16691 Resident Evil: Survivor PlayStation 2000 Aug https://www.metacritic.com//game/playstation/r... 12589 Action Adventure,Horror 30 39 /g/11hdvdpwm3 PS 0.69
16692 Duke Nukem: Land of the Babes PlayStation 2000 Sep https://www.metacritic.com//game/playstation/d... 12590 Action,Shooter,Third-Person,Sci-Fi 19 37 /m/0977sd PS 0.07
16693 Mortal Kombat: Special Forces PlayStation 2000 Jun https://www.metacritic.com//game/playstation/m... 12591 Action,Beat-'Em-Up 30 28 Mortal Kombat: Special Forces PS 0.20
16694 HBO Boxing PlayStation 2000 Nov https://www.metacritic.com//game/playstation/h... 12592 Sports,Traditional,Boxing 20 26 /m/0kyn71x PS 0.21

5209 rows × 12 columns

This dataframe is the formed by the merging of the previous 2 dataframe. The name column contains the name of the game; data_x column contains the platform the game was released by metacritic; year column contains the year it was released; month column contains the month the game was released; link is the link to the game's metacritic page; index is just the repeated index, which was useful in the process of interacting with pytrends; genre column contains all the genres of the game; day column contains the day of the month the game was released; rating contains the metacritic score of the game which was given by critics; Code contains the google trends code of the game. If the game has no id, its name was put there. The code column was used to query google trends to get search data. The data_y columns contains the platform it was released on by VGChartz; the sales columns contains the sales of the game. This dataframe was used in the sales analysis.

In [7]:
pd.read_csv('genres.csv', index_col=0)
Out[7]:
index genre Code
0 0 Role-Playing /m/06c9r
1 1 Action RPG /m/06zm8z
2 2 Adventure /m/03k9fj
3 3 3D 3D
4 4 First-Person /m/033th
... ... ... ...
167 167 Tank Tank
168 168 Wakeboarding Wakeboarding
169 169 Futuristic Sub Futuristic Sub
170 170 Old Jet /g/11c1wfk3qv
170 171 Street Street

162 rows × 3 columns

This dataframe contains genre data. It was acquired by getting the unique genres in the previous dataframe. The index column is just the repeated index, which was useful in the process of interacting with pytrends; genre column contains the unique genres; Code contains the google trends code of the genre. If the genre has no id, its name was put there. The code column was used to query google trends to get search data. It also was cleaned, as a result, it was used to remove duplicate genres in other dataframes.

In [8]:
for i in range(2004, 2023):
    display(pd.read_csv('genre' + str(i) + '.csv', index_col=0))
date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2004-01-04 80.0 0.792746 2.510363 79.585987 6.982397 1.189119 0.000000 3.303109 3.567358 ... 0.0 9.248705 0.000000 0.792746 0.000000 NaN NaN NaN NaN NaN
1 2004-01-11 84.0 0.000000 3.038860 74.713376 7.837385 0.396373 1.056995 4.095855 1.981865 ... 0.0 8.852332 2.906736 0.000000 0.000000 NaN NaN NaN NaN NaN
2 2004-01-18 82.0 0.924870 2.510363 75.525478 8.264878 0.000000 0.000000 2.774611 3.170984 ... 0.0 10.966321 1.321244 0.000000 0.000000 NaN NaN NaN NaN NaN
3 2004-01-25 80.0 0.924870 2.774611 71.464968 7.694887 0.000000 1.453368 4.492228 1.717617 ... 0.0 8.852332 0.000000 0.000000 0.000000 NaN NaN NaN NaN NaN
4 2004-02-01 73.0 0.528497 2.246114 75.525478 6.412406 0.000000 0.660622 3.435233 2.378238 ... 0.0 8.059585 0.924870 0.000000 0.528497 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 40.945611 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 40.452290 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 40.945611 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 49.332061 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 43.905534 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2005-01-02 74.0 0.294404 5.593685 57.574054 9.862549 0.000000 0.588809 7.065707 3.091247 ... 0.000000 6.476898 0.000000 0.0 0.588809 NaN NaN NaN NaN NaN
1 2005-01-09 76.0 0.883213 4.857674 50.034595 8.096123 0.000000 0.000000 5.299280 2.796842 ... 0.588809 8.684932 0.294404 0.0 0.000000 NaN NaN NaN NaN NaN
2 2005-01-16 75.0 0.883213 4.121662 58.944865 5.740887 0.294404 1.324820 5.299280 2.060831 ... 0.736011 7.801718 0.000000 0.0 0.000000 NaN NaN NaN NaN NaN
3 2005-01-23 77.0 0.000000 4.563269 52.090811 8.096123 0.000000 0.588809 4.563269 2.796842 ... 0.000000 8.243325 0.294404 0.0 0.000000 NaN NaN NaN NaN NaN
4 2005-01-30 75.0 0.441607 3.238449 56.203243 10.745763 0.000000 0.294404 4.268865 2.355236 ... 0.000000 8.979336 0.000000 0.0 0.000000 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 47.658031 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 49.616580 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 52.880829 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 65.284974 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 65.284974 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2006-01-01 89.0 1.165394 4.273113 61.468421 10.682782 0.388465 0.388465 9.711620 3.301951 ... 0.0 8.740458 0.000000 0.000000 0.000000 NaN NaN NaN NaN NaN
1 2006-01-08 83.0 0.194232 4.661578 57.129474 9.323155 0.000000 0.582697 6.798134 2.913486 ... 0.0 9.711620 0.582697 0.000000 0.582697 NaN NaN NaN NaN NaN
2 2006-01-15 83.0 0.388465 3.496183 62.191579 9.905852 0.000000 0.582697 7.575064 3.496183 ... 0.0 10.488550 0.000000 0.000000 0.388465 NaN NaN NaN NaN NaN
3 2006-01-22 83.0 0.776930 5.050042 63.637895 9.323155 0.388465 0.388465 10.294317 2.136556 ... 0.0 11.265479 0.582697 0.194232 0.388465 NaN NaN NaN NaN NaN
4 2006-01-29 86.0 0.971162 6.409669 60.022105 10.682782 0.000000 0.000000 9.905852 3.301951 ... 0.0 11.459712 0.000000 0.388465 0.000000 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 55.250000 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 57.375000 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 70.833333 0.0 0.0 0.0
104 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 67.291667 0.0 0.0 0.0
105 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 62.333333 0.0 0.0 0.0

106 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2007-01-07 77.0 0.513863 5.652491 61.317757 10.303887 0.513863 0.856438 13.463064 2.740602 ... 0.000000 10.466041 0.171288 0.0 0.000000 NaN NaN NaN NaN NaN
1 2007-01-14 79.0 0.856438 5.823778 63.264352 10.487885 0.000000 0.342575 14.460328 3.939615 ... 0.342575 9.258421 0.000000 0.0 0.000000 NaN NaN NaN NaN NaN
2 2007-01-21 76.0 0.000000 5.138628 63.264352 10.855881 0.000000 1.370301 15.956224 2.911889 ... 0.000000 10.466041 0.000000 0.0 0.000000 NaN NaN NaN NaN NaN
3 2007-01-28 84.0 0.171288 4.282190 67.157543 12.143867 0.342575 0.342575 15.706908 3.254464 ... 0.171288 10.868581 0.000000 0.0 0.000000 NaN NaN NaN NaN NaN
4 2007-02-04 80.0 0.513863 5.823778 67.157543 10.855881 0.171288 0.685150 14.958960 2.740602 ... 0.000000 11.069851 0.513863 0.0 0.171288 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 60.656682 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 68.744240 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 73.596774 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 80.875576 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 74.405530 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2008-01-06 85.0 0.627771 6.905476 81.985135 15.066493 0.313885 0.627771 20.649762 4.080508 ... 0.0 16.267970 0.313885 0.000000 0.313885 NaN NaN NaN NaN NaN
1 2008-01-13 86.0 0.313885 8.788787 78.081081 13.810952 0.313885 0.313885 21.305310 4.080508 ... 0.0 18.819808 0.000000 0.000000 0.000000 NaN NaN NaN NaN NaN
2 2008-01-20 89.0 0.627771 8.474902 81.985135 15.066493 0.313885 0.627771 22.616406 4.394394 ... 0.0 17.862868 0.000000 0.313885 0.000000 NaN NaN NaN NaN NaN
3 2008-01-27 92.0 0.627771 8.474902 79.382432 14.124837 0.313885 0.627771 23.271954 4.708279 ... 0.0 18.181848 0.313885 0.000000 0.000000 NaN NaN NaN NaN NaN
4 2008-02-03 89.0 0.941656 8.788787 80.683784 14.124837 0.313885 0.627771 22.944180 7.533246 ... 0.0 18.181848 0.000000 0.313885 0.000000 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 65.630162 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 72.725314 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 71.838420 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 88.689408 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 86.028725 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2009-01-04 80.0 0.591931 10.950718 108.889098 15.982128 0.591931 0.591931 30.221198 6.215272 ... 0.0 30.856064 0.000000 0.0 0.0 NaN NaN NaN NaN NaN
1 2009-01-11 85.0 0.591931 10.062822 112.998120 15.390198 0.295965 0.295965 32.739631 4.735445 ... 0.0 32.159841 0.295965 0.0 0.0 NaN NaN NaN NaN NaN
2 2009-01-18 88.0 0.887896 12.134579 121.216165 16.574059 0.295965 0.887896 38.196237 5.919307 ... 0.0 33.029026 0.295965 0.0 0.0 NaN NaN NaN NaN NaN
3 2009-01-25 82.0 0.887896 13.022475 110.943609 17.165990 0.887896 0.591931 37.776498 6.511237 ... 0.0 31.290656 0.000000 0.0 0.0 NaN NaN NaN NaN NaN
4 2009-02-01 85.0 0.887896 12.726510 123.270677 17.461955 0.000000 0.591931 35.677803 5.919307 ... 0.0 30.421471 0.000000 0.0 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 69.733503 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 69.733503 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 69.733503 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 92.978003 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 85.539763 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2010-01-03 93.0 0.741635 20.024136 207.807407 22.990675 0.741635 0.741635 43.050383 8.157981 ... 0.0 44.936416 0.370817 0.000000 0.0 NaN NaN NaN NaN NaN
1 2010-01-10 90.0 0.741635 18.170049 210.311111 20.765771 0.741635 0.741635 39.780734 8.528799 ... 0.0 47.378613 0.370817 0.000000 0.0 NaN NaN NaN NaN NaN
2 2010-01-17 91.0 0.741635 17.799232 217.822222 22.619857 0.741635 0.741635 43.595324 8.157981 ... 0.0 44.936416 0.000000 0.000000 0.0 NaN NaN NaN NaN NaN
3 2010-01-24 88.0 1.112452 18.911684 220.325926 21.878223 0.741635 0.741635 48.499798 8.899616 ... 0.0 48.843931 0.000000 0.370817 0.0 NaN NaN NaN NaN NaN
4 2010-01-31 90.0 0.741635 20.024136 227.837037 22.249040 0.370817 1.112452 45.230149 8.157981 ... 0.0 46.401734 0.370817 0.000000 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 71.208275 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 70.232819 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 76.085554 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 88.766480 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 84.864656 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2011-01-02 97.0 1.392702 25.068636 284.815490 25.532870 0.464234 0.928468 39.459890 9.284680 ... 0.0 54.468230 0.0 0.0 0.0 NaN NaN NaN NaN NaN
1 2011-01-09 93.0 2.321170 25.068636 273.861048 24.604402 0.928468 0.928468 36.210252 7.891978 ... 0.0 51.200136 0.0 0.0 0.0 NaN NaN NaN NaN NaN
2 2011-01-16 92.0 2.321170 25.532870 284.815490 25.532870 0.928468 1.392702 41.781060 8.356212 ... 0.0 51.744818 0.0 0.0 0.0 NaN NaN NaN NaN NaN
3 2011-01-23 98.0 1.392702 26.461338 292.118451 25.532870 0.928468 1.392702 41.316826 9.748914 ... 0.0 49.021407 0.0 0.0 0.0 NaN NaN NaN NaN NaN
4 2011-01-30 100.0 0.928468 25.532870 314.027335 25.068636 0.928468 1.392702 40.388358 9.284680 ... 0.0 47.932042 0.0 0.0 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 62.397880 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 66.776678 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 66.776678 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 79.913074 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 79.913074 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2012-01-01 91.0 1.348214 35.952381 357.971487 25.166667 1.348214 0.898810 45.288447 9.43750 ... 0.0 46.259893 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
1 2012-01-08 85.0 1.348214 29.211310 346.900204 24.717262 1.348214 1.348214 45.750574 8.53869 ... 0.0 44.872096 0.0 0.0 0.449405 NaN NaN NaN NaN NaN
2 2012-01-15 85.0 1.348214 30.559524 346.900204 24.267857 1.348214 1.348214 45.750574 9.43750 ... 0.0 44.409497 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
3 2012-01-22 91.0 1.348214 31.458333 328.448065 25.616071 1.348214 1.797619 45.750574 9.43750 ... 0.0 43.946898 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
4 2012-01-29 85.0 1.348214 28.761905 343.209776 25.616071 1.797619 1.348214 45.750574 8.53869 ... 0.0 45.334695 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 65.165208 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 68.040144 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 75.706639 0.0 0.0 0.0
104 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 87.206382 0.0 0.0 0.0
105 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 80.498199 0.0 0.0 0.0

106 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2013-01-06 85.0 1.213918 25.492268 315.087760 28.729381 0.809278 1.213918 41.060155 8.497423 ... 0.0 38.861386 0.0 0.0 0.0 NaN NaN NaN NaN NaN
1 2013-01-13 93.0 2.023196 25.492268 303.122402 28.729381 0.809278 1.213918 44.028359 9.306701 ... 0.0 38.343234 0.0 0.0 0.0 NaN NaN NaN NaN NaN
2 2013-01-20 92.0 1.618557 25.087629 315.087760 27.515464 0.809278 1.213918 45.512461 8.902062 ... 0.0 43.006601 0.0 0.0 0.0 NaN NaN NaN NaN NaN
3 2013-01-27 92.0 1.213918 26.301546 315.087760 27.920103 0.809278 1.213918 45.017760 8.497423 ... 0.0 40.415842 0.0 0.0 0.0 NaN NaN NaN NaN NaN
4 2013-02-03 91.0 1.618557 26.301546 319.076212 26.706186 0.809278 2.023196 45.017760 10.115979 ... 0.0 42.488449 0.0 0.0 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 56.047970 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 63.398524 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 68.911439 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 80.856089 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 72.586716 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2014-01-05 99.0 1.977717 24.721466 373.271028 32.137905 0.988859 1.977717 43.015350 8.899728 ... 0.0 53.407499 0.0 0.0 0.0 NaN NaN NaN NaN NaN
1 2014-01-12 92.0 2.472147 22.249319 365.805607 32.137905 0.988859 1.483288 39.059916 8.899728 ... 0.0 47.901572 0.0 0.0 0.0 NaN NaN NaN NaN NaN
2 2014-01-19 98.0 1.977717 21.754890 365.805607 34.115623 0.988859 1.977717 37.576628 7.910869 ... 0.0 52.306314 0.0 0.0 0.0 NaN NaN NaN NaN NaN
3 2014-01-26 100.0 1.977717 24.721466 373.271028 34.610052 0.988859 1.977717 39.059916 8.899728 ... 0.0 51.755721 0.0 0.0 0.0 NaN NaN NaN NaN NaN
4 2014-02-02 100.0 2.472147 22.743748 362.072897 35.104481 0.494429 1.977717 38.071057 7.910869 ... 0.0 54.508685 0.0 0.0 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 55.402355 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 56.151035 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 59.145757 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 59.145757 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 66.632562 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2015-01-04 94.0 1.751024 22.179632 265.557598 36.771494 0.583675 2.334698 34.436796 9.922467 ... 0.0 56.528869 0.0 0.0 0.0 NaN NaN NaN NaN NaN
1 2015-01-11 85.0 1.751024 19.261259 271.148284 36.187820 1.167349 2.334698 34.436796 8.171443 ... 0.0 50.515160 0.0 0.0 0.0 NaN NaN NaN NaN NaN
2 2015-01-18 89.0 2.334698 19.844933 257.171569 36.771494 1.167349 1.751024 38.522518 9.338792 ... 0.0 49.913789 0.0 0.0 0.0 NaN NaN NaN NaN NaN
3 2015-01-25 89.0 1.751024 19.261259 273.943627 36.771494 1.167349 2.334698 40.273541 7.587769 ... 0.0 58.934353 0.0 0.0 0.0 NaN NaN NaN NaN NaN
4 2015-02-01 87.0 1.751024 19.261259 268.352941 37.355169 0.583675 2.334698 35.020471 8.171443 ... 0.0 60.137095 0.0 0.0 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 47.561350 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 62.509202 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 49.599693 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 64.547546 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 63.868098 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2016-01-03 100.0 2.483432 21.523077 202.313811 43.046154 0.827811 2.483432 30.628994 9.105917 ... 0.0 55.463314 0.0 0.0 0.0 NaN NaN NaN NaN NaN
1 2016-01-10 95.0 2.483432 21.523077 198.267534 42.218343 0.827811 2.483432 30.628994 7.450296 ... 0.0 57.118935 0.0 0.0 0.0 NaN NaN NaN NaN NaN
2 2016-01-17 99.0 2.483432 19.039645 202.313811 38.907101 0.827811 2.483432 34.768047 7.450296 ... 0.0 57.118935 0.0 0.0 0.0 NaN NaN NaN NaN NaN
3 2016-01-24 93.0 2.483432 19.867456 198.267534 39.734911 0.827811 2.483432 33.940237 9.105917 ... 0.0 63.741420 0.0 0.0 0.0 NaN NaN NaN NaN NaN
4 2016-01-31 94.0 2.483432 21.523077 198.267534 40.562722 0.827811 2.483432 33.112426 7.450296 ... 0.0 58.774556 0.0 0.0 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 47.370175 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 54.475701 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 55.265204 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 60.791725 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 60.791725 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2017-01-01 95.0 3.364341 20.186047 211.161435 60.558140 0.672868 2.691473 28.933333 9.420155 ... 0.0 66.013266 0.0 0.0 0.0 NaN NaN NaN NaN NaN
1 2017-01-08 100.0 3.364341 18.840310 195.267564 57.193798 0.672868 2.691473 26.914729 9.420155 ... 0.0 65.318390 0.0 0.0 0.0 NaN NaN NaN NaN NaN
2 2017-01-15 98.0 2.691473 18.840310 199.808670 52.483721 0.672868 4.037209 26.914729 9.420155 ... 0.0 63.928637 0.0 0.0 0.0 NaN NaN NaN NaN NaN
3 2017-01-22 88.0 2.691473 18.167442 195.267564 54.502326 1.345736 4.037209 27.587597 8.747287 ... 0.0 69.487649 0.0 0.0 0.0 NaN NaN NaN NaN NaN
4 2017-01-29 91.0 3.364341 18.840310 188.455904 54.502326 0.672868 4.037209 27.587597 8.747287 ... 0.0 66.013266 0.0 0.0 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 52.621679 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 51.920056 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 54.024924 0.0 0.0 0.0
104 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 60.339525 0.0 0.0 0.0
105 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 54.024924 0.0 0.0 0.0

106 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2018-01-07 98.0 2.526523 14.316964 169.234828 57.267857 0.842174 4.210872 20.212185 10.106092 ... 0.0 58.952206 0.0 0.0 0.0 NaN NaN NaN NaN NaN
1 2018-01-14 98.0 2.526523 17.685662 157.388391 55.583508 1.684349 3.368697 19.370011 8.421744 ... 0.0 62.320903 0.0 0.0 0.0 NaN NaN NaN NaN NaN
2 2018-01-21 95.0 3.368697 16.001313 167.542480 56.425683 0.842174 5.053046 19.370011 11.790441 ... 0.0 64.847426 0.0 0.0 0.0 NaN NaN NaN NaN NaN
3 2018-01-28 99.0 3.368697 16.001313 152.311346 55.583508 0.842174 5.053046 20.212185 10.106092 ... 0.0 65.689601 0.0 0.0 0.0 NaN NaN NaN NaN NaN
4 2018-02-04 92.0 3.368697 16.001313 143.849604 53.899160 1.684349 4.210872 18.527836 10.948267 ... 0.0 61.478729 0.0 0.0 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 43.545774 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 42.674858 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 45.287605 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 51.384013 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 48.771267 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2019-01-06 73.0 2.583676 13.900968 106.838279 35.525551 0.661951 2.583676 13.900968 7.943410 ... 0.0 38.393150 0.0 0.0 0.0 NaN NaN NaN NaN NaN
1 2019-01-13 73.0 3.875515 11.915115 118.709199 35.525551 0.661951 2.583676 15.886821 9.929263 ... 0.0 41.040953 0.0 0.0 0.0 NaN NaN NaN NaN NaN
2 2019-01-20 76.0 2.583676 11.915115 102.881306 34.879632 0.661951 2.583676 13.239017 7.281459 ... 0.0 42.364855 0.0 0.0 0.0 NaN NaN NaN NaN NaN
3 2019-01-27 75.0 3.875515 13.900968 102.881306 29.712279 0.661951 3.229596 15.224870 6.619509 ... 0.0 44.350707 0.0 0.0 0.0 NaN NaN NaN NaN NaN
4 2019-02-03 73.0 2.583676 13.239017 110.795252 32.941875 0.661951 3.229596 13.900968 6.619509 ... 0.0 40.379002 0.0 0.0 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 27.904028 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 35.042268 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 34.393337 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 40.233715 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 35.691198 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2020-01-05 74.0 2.858475 11.433898 115.175610 38.112994 1.905650 3.811299 13.339548 8.575424 ... 0.0 40.018644 0.0 0.0 0.0 NaN NaN NaN NaN NaN
1 2020-01-12 76.0 2.858475 11.433898 120.660163 39.065819 0.952825 2.858475 13.339548 8.575424 ... 0.0 43.829944 0.0 0.0 0.0 NaN NaN NaN NaN NaN
2 2020-01-19 76.0 2.858475 11.433898 120.660163 35.254520 0.952825 3.811299 14.292373 9.528249 ... 0.0 44.782768 0.0 0.0 0.0 NaN NaN NaN NaN NaN
3 2020-01-26 70.0 2.858475 11.433898 115.175610 40.018644 0.952825 3.811299 15.245198 9.528249 ... 0.0 44.782768 0.0 0.0 0.0 NaN NaN NaN NaN NaN
4 2020-02-02 74.0 2.858475 11.433898 112.433333 39.065819 0.952825 4.764124 12.386723 8.575424 ... 0.0 40.018644 0.0 0.0 0.0 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 30.927042 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 31.864225 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 38.424507 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 40.298873 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 39.361690 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2021-01-03 90.0 3.396904 12.738389 179.274255 63.213224 1.698452 4.329673 16.452757 13.587615 ... 0.0 51.802782 0.0 0.0 0.849226 NaN NaN NaN NaN NaN
1 2021-01-10 92.0 3.396904 12.738389 202.406417 66.676962 0.849226 4.329673 15.586822 14.436841 ... 0.0 51.802782 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
2 2021-01-17 89.0 3.396904 12.738389 179.274255 63.213224 0.849226 5.195607 15.586822 12.738389 ... 0.0 50.104330 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
3 2021-01-24 88.0 3.396904 13.587615 185.057296 64.079158 0.849226 4.329673 18.184626 13.587615 ... 0.0 47.556652 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
4 2021-01-31 96.0 3.396904 13.587615 193.731856 61.481354 0.849226 5.195607 15.586822 14.436841 ... 0.0 48.405878 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
99 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 29.803034 0.0 0.0 0.0
100 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 30.548110 0.0 0.0 0.0
101 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 30.548110 0.0 0.0 0.0
102 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 32.038261 0.0 0.0 0.0
103 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 39.489020 0.0 0.0 0.0

104 rows × 163 columns

date Role-Playing Action RPG Adventure 3D First-Person Action Adventure Linear Action Platformer ... On-foot Tank Wakeboarding Futuristic Sub Old Jet Board / Card Game Massively Multiplayer Online Surf / Wakeboard Breeding/Constructing Rally / Offroad
0 2022-01-02 88.0 3.934219 12.589500 165.402379 66.881720 0.786844 4.721063 14.163188 15.736875 ... 0.0 46.423782 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
1 2022-01-09 93.0 3.934219 12.589500 156.696991 60.586970 1.573688 4.721063 14.163188 11.802657 ... 0.0 44.850095 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
2 2022-01-16 90.0 3.147375 11.802657 149.732680 60.586970 0.786844 4.721063 13.376344 13.376344 ... 0.0 42.489564 0.0 0.0 0.786844 NaN NaN NaN NaN NaN
3 2022-01-23 88.0 3.934219 13.376344 161.920224 62.160658 1.573688 6.294750 14.163188 13.376344 ... 0.0 46.423782 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
4 2022-01-30 81.0 3.934219 12.589500 156.696991 61.373814 0.786844 6.294750 13.376344 11.802657 ... 0.0 47.210626 0.0 0.0 0.000000 NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
69 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 52.751880 0.0 0.0 0.0
70 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 51.927632 0.0 0.0 0.0
71 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 42.860902 0.0 0.0 0.0
72 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 40.388158 0.0 0.0 0.0
73 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN 0.0 37.091165 0.0 0.0 0.0

74 rows × 163 columns

This dataframe was created using the interest over time graph of google trends. The date columns shows the date for each row. Each subsequent component shows the proportional amount of searches done over time for the column name. This was done by comparing each value with a 'yardstick', another keyword not a genre, and scaling each graph to allow the yardstick to be same through out. This dataframe was used to create another dataframe, which contains the top results. Each dataframe is for the values for different years.

In [9]:
pd.read_csv('yearlygenre.csv', index_col=0)
Out[9]:
genre Searches year Code
0 Puzzle 408.088057 2022 /m/0lvmz
1 Board Games 244.155928 2022 /m/015ll
2 Team 163.794808 2022 Team
3 Football 153.767703 2022 Football
4 3D 152.791330 2022 3D
... ... ... ... ...
10 Flight 38.635414 2004 Flight
11 Massively Multiplayer Online 38.460034 2004 /m/057m6
12 Football 34.212880 2004 Football
13 Golf 33.556555 2004 Golf
14 Board Games 32.885340 2004 /m/015ll

285 rows × 4 columns

This dataframe was created by combining the previous dataframes together. The genre column contains the top 15 genre with the highest mean search count over the year for all the dataframes; Searches column contains the mean stated before; year contains the year these results were from; Code column contains the google trends code, and a name if the genre has no code. This dataframe was mainly used for the analysis of the Searches column

In [10]:
for i in range(2004, 2023):
    display(pd.read_csv('genrecountry' + str(i) + '.csv', index_col=0))
Puzzle Role-Playing Tycoon 3D Trainer Sports Street Music Combat Command Flight Massively Multiplayer Online Football Golf Board Games
geoName
Afghanistan NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Albania 65.0 0.000000 0.000000 36.428571 67.941176 0.0 0.000000 0.000000 32.307692 0.0 0.0 0.0 0.0 35.0 0.0
Algeria NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 0.0 53.846154 257.142857 0.000000 0.000000 0.0 69.491525 96.078431 0.000000 0.0 0.0 0.0 0.0 0.0 0.0
Zimbabwe NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

Puzzle Role-Playing 3D Tycoon Street Football Massively Multiplayer Online Trainer Music Sports Combat Flight Golf Racing Board Games
geoName
Afghanistan 61.0 0.0 156.0 0.0 0.0 0.0 0.0 53.857143 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Albania NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Algeria NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zimbabwe NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

Puzzle Role-Playing Tycoon Massively Multiplayer Online 3D Football Street Music Flight Trainer Racing Sports Combat Virtual Command
geoName
Afghanistan 60.0 0.0 NaN 0.0 35.471698 0.000000 0.0 0.000000 0.0 0.0 0.0 0.0 46.956522 81.212121 0.0
Albania NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Algeria NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 55.0 0.0 45.0 0.0 0.000000 20.217391 0.0 33.947368 0.0 0.0 0.0 0.0 0.000000 15.810811 0.0
Zimbabwe NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

Puzzle Role-Playing Street 3D Racing Massively Multiplayer Online Football Tycoon Trainer Command Music Sports Virtual Team Flight
geoName
Afghanistan 61.0 117.0 79.181818 40.591837 47.666667 0.0 0.0 0.0 47.666667 0.0 111.0 156.0 0.0 0.0 0.0
Albania NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Algeria NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zimbabwe NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

Puzzle Racing 3D Role-Playing Street Massively Multiplayer Online Football Trainer Shooter Music Tycoon Team Fighting Space Pet
geoName
Afghanistan NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Albania NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Algeria 96.0 129.333333 396.000000 29.333333 196.000000 32.363636 96.000000 21.0 17.052632 129.333333 22.666667 36.000000 396.000000 21.0 3.547170
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen 73.0 0.000000 73.000000 0.000000 45.972973 0.000000 0.000000 85.5 0.000000 23.000000 0.000000 28.102041 69.428571 0.0 21.214286
Zambia 49.0 49.000000 73.390244 21.857143 41.727273 20.830986 0.000000 0.0 27.461538 0.000000 0.000000 29.952381 0.000000 0.0 0.000000
Zimbabwe 70.0 120.000000 51.081081 30.000000 51.081081 16.875000 22.631579 0.0 20.000000 53.333333 0.000000 0.000000 28.823529 0.0 0.000000
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

Puzzle 3D Racing Street Shooter Role-Playing Massively Multiplayer Online Fighting Trainer Football Tycoon Sports Pet Space Team
geoName
Afghanistan NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Albania NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Algeria 98.0 198.0 98.0 198.0 23.0 26.571429 38.0 inf 20.222222 98.0 20.222222 23.0 8.0 23.0 26.571429
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zimbabwe NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

3D Puzzle Racing Shooter Street Fighting Football Role-Playing Massively Multiplayer Online Trainer Defense Team Sports Music Pet
geoName
Afghanistan NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Albania NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Algeria NaN 0.0 0.000000 0.0 0.000000 0.0 0.0 0.0 0.0 0.000000 0.0 0.000000 0.0 0.000000 0.0
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zimbabwe 50.0 0.0 48.039216 0.0 46.153846 0.0 0.0 0.0 0.0 23.529412 0.0 54.166667 0.0 48.039216 0.0
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

3D Puzzle Racing Shooter Street Fighting Team Space Defense Football Role-Playing Massively Multiplayer Online Trainer Sports Wargame
geoName
Afghanistan NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Albania 95.0 120.000000 95.000000 21.315789 45.000000 15.833333 20.000000 12.857143 21.315789 66.428571 13.518519 15.000000 36.666667 40.454545 12.241379
Algeria 99.0 32.333333 32.333333 11.500000 49.000000 99.000000 8.090909 11.500000 4.263158 99.000000 8.090909 10.111111 9.000000 6.142857 99.000000
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 71.0 102.818182 87.000000 23.727273 49.378378 13.647059 11.277778 21.000000 0.000000 116.000000 0.000000 0.000000 34.043478 56.294118 0.000000
Zimbabwe 82.0 57.000000 162.000000 33.428571 67.714286 25.902439 9.692308 13.034483 0.000000 60.260870 0.000000 0.000000 11.508197 44.068966 0.000000
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

3D Puzzle Racing Shooter Team Street Defense Fighting Football Space Role-Playing Massively Multiplayer Online Sports Wargame Trainer
geoName
Afghanistan NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Albania 97.0 97.000000 72.0 22.000000 12.000000 39.857143 22.000000 12.789474 72.0 10.636364 10.636364 6.090909 27.000000 11.285714 24.272727
Algeria NaN 0.000000 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra 65.0 52.500000 0.0 0.000000 18.030303 22.377049 10.454545 0.000000 0.0 24.322034 48.333333 NaN 29.814815 NaN 0.000000
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 92.0 34.105263 72.0 16.242424 64.727273 42.000000 0.000000 21.629630 152.0 13.052632 11.512195 0.000000 49.142857 0.000000 8.000000
Zimbabwe 94.0 48.545455 144.0 15.428571 14.689655 79.714286 4.526316 15.428571 54.0 5.764706 5.320755 0.000000 25.578947 5.764706 12.181818
Åland Islands 0.0 194.117647 0.0 0.000000 92.307692 177.777778 NaN 0.000000 150.0 0.000000 0.000000 138.095238 0.000000 0.000000 0.000000

250 rows × 15 columns

3D Puzzle Racing Team Shooter Space Street Football Fighting Truck Role-Playing Defense Sports Massively Multiplayer Online Wargame
geoName
Afghanistan 86.0 46.869565 68.352941 15.166667 17.818182 37.851852 27.176471 56.000000 23.837838 20.146341 24.888889 19.333333 32.666667 0.000000 0.000000
Albania 99.0 32.333333 32.333333 10.111111 9.000000 6.692308 15.666667 32.333333 7.333333 24.000000 6.692308 4.882353 7.333333 5.666667 3.761905
Algeria NaN 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 92.0 25.333333 49.142857 30.095238 10.181818 14.222222 30.095238 106.285714 9.777778 13.052632 2.810811 4.903226 39.058824 4.903226 0.000000
Zimbabwe 93.0 43.000000 133.000000 13.000000 22.166667 7.893617 46.846154 80.500000 31.888889 56.636364 6.725490 0.000000 34.176471 0.000000 8.555556
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

3D Puzzle Racing Team Shooter Street Football Board Games Kart Role-Playing Truck Sports Fighting Space Pet
geoName
Afghanistan 94.0 60.666667 69.0 25.578947 29.294118 29.294118 94.000000 20.086957 0.000000 25.578947 11.647059 21.272727 22.571429 44.000000 7.636364
Albania NaN 0.000000 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Algeria NaN 0.000000 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra 88.0 73.714286 0.0 58.588235 NaN 25.500000 42.545455 13.531915 29.379310 40.173913 26.709677 15.906977 0.000000 21.333333 0.000000
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 97.0 22.000000 47.0 24.272727 3.976744 20.076923 97.000000 6.375000 1.225352 2.882353 22.000000 34.500000 9.000000 5.823529 2.357143
Zimbabwe 94.0 48.545455 194.0 24.000000 22.571429 54.000000 114.000000 9.384615 3.677419 0.000000 114.000000 40.153846 21.272727 4.909091 0.000000
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

Puzzle 3D Team Racing Street Football Board Games Shooter Role-Playing Truck Sports Music Space Fighting Pet
geoName
Afghanistan 85.0 121.363636 50.217391 85.000000 36.724138 135.000000 19.090909 47.500000 15.000000 42.692308 40.555556 42.692308 14.411765 33.387097 0.000000
Albania 98.0 198.000000 48.000000 98.000000 48.000000 198.000000 18.000000 23.000000 13.384615 64.666667 38.000000 23.000000 9.764706 16.181818 13.384615
Algeria 97.0 inf 72.000000 72.000000 147.000000 297.000000 9.500000 24.272727 17.000000 147.000000 20.076923 97.000000 22.000000 297.000000 17.000000
American Samoa 0.0 170.270270 0.000000 0.000000 127.272727 185.714286 0.000000 NaN 0.000000 0.000000 0.000000 170.270270 132.558140 0.000000 0.000000
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen 70.0 200.769231 85.384615 23.571429 55.714286 30.000000 0.000000 0.000000 66.774194 48.947368 0.000000 46.923077 32.500000 303.333333 15.454545
Zambia 71.0 212.666667 141.588235 178.142857 67.666667 293.222222 22.785714 27.862745 8.179487 109.095238 132.111111 937.666667 23.727273 38.441860 6.802469
Zimbabwe 87.0 87.000000 41.166667 247.000000 73.666667 172.714286 23.111111 22.135135 6.696970 247.000000 73.666667 105.181818 10.214286 27.625000 8.311475
Åland Islands 50.0 33.333333 85.135135 0.000000 0.000000 36.206897 44.339623 0.000000 0.000000 33.333333 0.000000 0.000000 37.719298 0.000000 0.000000

250 rows × 15 columns

Puzzle 3D Team Street Board Games Football Racing Shooter Truck Sports Trainer Role-Playing Music Space Golf
geoName
Afghanistan 82.0 145.636364 63.818182 63.818182 42.000000 110.571429 87.882353 22.909091 48.666667 21.130435 120.461538 36.545455 67.714286 42.000000 29.368421
Albania 97.0 72.000000 39.857143 39.857143 9.000000 147.000000 39.857143 24.272727 57.000000 39.857143 18.428571 9.500000 15.750000 12.000000 3.976744
Algeria 93.0 693.000000 93.000000 226.333333 23.434783 226.333333 93.000000 28.000000 226.333333 24.818182 80.500000 28.000000 133.000000 34.176471 23.434783
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra 78.0 53.862069 39.111111 35.894737 35.894737 25.826087 0.000000 0.000000 40.857143 28.000000 24.808511 0.000000 0.000000 0.000000 20.307692
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen 70.0 184.285714 63.750000 60.909091 14.776119 12.857143 20.847458 19.180328 43.170732 36.666667 36.666667 41.428571 22.631579 14.776119 11.095890
Zambia 57.0 116.259259 195.888889 50.478261 13.578947 315.333333 143.956522 21.179104 129.000000 136.166667 14.333333 2.263158 1390.333333 21.179104 8.807229
Zimbabwe 92.0 92.000000 45.333333 64.727273 11.512195 392.000000 192.000000 32.000000 392.000000 106.285714 9.021277 4.307692 106.285714 9.021277 0.000000
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

Puzzle Board Games Football 3D Team Street Racing Sports Kart Shooter Music Golf Role-Playing Space Truck
geoName
Afghanistan 75.0 37.500000 67.592593 131.250000 24.019608 46.428571 50.757576 61.206897 29.347826 37.500000 31.818182 13.461538 34.523810 40.789474 0.000000
Albania 92.0 24.000000 192.000000 92.000000 64.727273 72.000000 53.538462 49.142857 9.777778 36.444444 42.000000 0.000000 28.363636 30.095238 80.888889
Algeria 86.0 52.666667 336.000000 686.000000 161.000000 452.666667 186.000000 59.684211 63.777778 49.636364 219.333333 46.869565 36.000000 63.777778 452.666667
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 63.0 15.112676 374.111111 71.823529 123.869565 43.434783 117.166667 180.647059 0.000000 22.677419 1196.333333 11.051948 7.578313 16.623188 111.000000
Zimbabwe 88.0 14.666667 588.000000 73.714286 48.000000 68.000000 159.428571 228.000000 3.384615 36.000000 121.333333 6.750000 14.666667 18.769231 288.000000
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

Puzzle Board Games Football Team Street 3D Sports Golf Kart Space Music Racing Shooter Pet Role-Playing
geoName
Afghanistan NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Albania 87.0 23.111111 247.000000 68.250000 63.470588 87.000000 73.666667 17.232558 24.142857 15.888889 35.148148 43.521739 19.500000 43.521739 30.333333
Algeria 90.0 42.631579 240.000000 115.000000 323.333333 490.000000 61.428571 40.000000 48.823529 56.666667 132.857143 101.111111 33.478261 30.000000 24.482759
American Samoa 57.0 0.000000 57.000000 73.216216 23.153846 28.666667 0.000000 17.563380 27.491803 0.000000 59.380952 0.000000 0.000000 0.000000 0.000000
Andorra 25.0 72.058824 26.351351 40.384615 107.926829 75.000000 0.000000 63.888889 112.500000 33.695652 52.118644 NaN 0.000000 0.000000 63.888889
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen 88.0 22.285714 7.047619 16.571429 42.545455 88.000000 9.052632 22.285714 7.354839 21.333333 7.047619 15.906977 16.571429 0.000000 36.000000
Zambia 66.0 7.463415 532.666667 79.333333 55.473684 53.179487 249.333333 23.627119 2.956522 16.000000 1666.000000 120.545455 26.714286 3.777778 11.945946
Zimbabwe 80.0 22.553191 646.666667 54.074074 48.965517 60.000000 161.818182 6.666667 3.255814 15.714286 63.333333 133.846154 20.816327 0.000000 7.777778
Åland Islands 42.0 47.454545 0.000000 70.888889 0.000000 35.548387 21.452055 43.754386 0.000000 0.000000 22.555556 0.000000 0.000000 0.000000 0.000000

250 rows × 15 columns

Puzzle Board Games Football Team 3D Kart Golf Sports Street Music Pet Space Role-Playing Shooter Racing
geoName
Afghanistan 65.0 32.307692 39.468085 42.777778 37.916667 11.666667 12.297297 26.403509 35.000000 8.209877 12.297297 28.636364 22.377049 10.454545 18.846154
Albania 88.0 29.379310 121.333333 73.714286 80.307692 16.571429 32.444444 48.000000 51.157895 36.000000 25.500000 24.363636 26.709677 16.571429 15.272727
Algeria 91.0 47.250000 171.000000 91.000000 291.000000 66.000000 60.230769 55.285714 216.000000 81.000000 22.034483 47.250000 28.500000 31.909091 66.000000
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 66.0 17.515152 646.000000 53.179487 51.000000 6.963855 17.515152 451.714286 63.142857 3366.000000 6.000000 17.515152 7.463415 20.838710 102.000000
Zimbabwe 81.0 21.425532 456.000000 40.375000 40.375000 10.230769 19.000000 153.727273 35.285714 51.370370 9.358209 19.775510 4.750000 17.538462 92.764706
Åland Islands 52.0 0.000000 0.000000 72.000000 0.000000 36.210526 37.714286 0.000000 0.000000 0.000000 0.000000 0.000000 NaN 0.000000 0.000000

250 rows × 15 columns

Puzzle Board Games Team Football 3D Sports Kart Street Space Golf Pet Music Role-Playing Flight Shooter
geoName
Afghanistan 89.0 31.307692 41.380952 34.833333 57.750000 34.833333 8.642857 44.000000 57.750000 10.153846 7.032787 25.666667 25.666667 34.833333 25.666667
Albania 97.0 39.857143 47.000000 97.000000 97.000000 34.500000 12.000000 47.000000 24.272727 11.285714 47.000000 34.500000 15.750000 17.000000 15.750000
Algeria 90.0 61.428571 80.909091 156.666667 240.000000 73.333333 61.428571 190.000000 56.666667 33.478261 20.303030 61.428571 22.258065 66.923077 25.714286
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra 0.0 0.000000 150.000000 0.000000 222.580645 40.845070 233.333333 72.413793 100.000000 88.679245 0.000000 0.000000 58.730159 0.000000 NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen 92.0 30.095238 45.333333 45.333333 152.000000 32.000000 25.333333 36.444444 8.666667 17.806452 13.052632 19.586207 22.769231 42.000000 10.181818
Zambia 66.0 21.737705 72.250000 816.000000 39.913043 227.538462 3.362637 39.913043 16.746269 12.575342 10.155844 1666.000000 6.476190 19.968254 23.627119
Zimbabwe 83.0 33.000000 28.945946 323.000000 45.962963 195.500000 0.000000 43.714286 23.476190 8.373134 5.666667 51.000000 0.000000 19.956522 31.571429
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

Puzzle Board Games Football 3D Team Sports Golf Street Defense Pet Kart Space Music Horse Racing Shooter
geoName
Afghanistan 83.0 43.714286 48.384615 34.515152 43.714286 104.428571 13.909091 25.500000 10.868852 13.909091 15.692308 28.945946 18.416667 12.310345 18.416667
Albania 91.0 41.000000 103.500000 43.941176 38.368421 33.857143 18.272727 30.130435 41.000000 20.032258 11.000000 30.130435 19.125000 5.285714 12.428571
Algeria 93.0 63.000000 168.000000 226.333333 80.500000 93.000000 43.000000 226.333333 34.176471 24.818182 43.000000 51.333333 56.636364 14.212121 31.888889
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen 88.0 63.000000 54.666667 73.714286 24.363636 58.588235 26.709677 18.000000 7.672131 17.268293 13.000000 22.285714 12.489796 17.268293 14.666667
Zambia 65.0 18.846154 840.000000 37.916667 124.090909 315.000000 11.052632 36.428571 7.682927 5.229885 4.772727 22.377049 1131.666667 3.888889 20.555556
Zimbabwe 79.0 26.727273 329.000000 20.176471 32.846154 189.000000 7.767123 21.000000 7.378378 4.301205 5.923077 15.206897 37.333333 54.000000 21.857143
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

Puzzle Board Games Team Football 3D Sports Street Golf Pet Space Kart Music Truck Role-Playing Defense
geoName
Afghanistan NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Albania 84.0 37.333333 50.666667 78.117647 43.259259 43.259259 35.612903 20.363636 78.117647 26.105263 18.042553 39.172414 78.117647 27.243243 31.058824
Algeria 83.0 43.714286 96.333333 195.500000 195.500000 83.000000 195.500000 28.945946 30.222222 60.272727 51.000000 60.272727 225.857143 25.500000 34.515152
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen 82.0 28.153846 28.153846 67.714286 132.000000 29.368421 30.648649 0.000000 0.000000 19.500000 7.352113 18.000000 44.068966 15.962264 14.142857
Zambia 73.0 12.130435 76.846154 648.000000 25.941176 310.500000 33.000000 18.762712 6.333333 16.548387 2.347826 648.000000 115.105263 4.034483 5.926829
Zimbabwe 80.0 16.363636 35.555556 313.333333 26.511628 161.818182 37.142857 12.786885 4.096386 14.482759 4.390244 46.666667 180.000000 3.809524 9.411765
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 15 columns

This dataframe was created using the interest over region graphs of google trends. Each dataframe is for a different year. The index columns shows the country each value was from. Each subsequent column shows the proportional mean amount of searches for the column name and country. This was done by comparing each value with a 'yardstick', another keyword, which was not a genre, and scaling each graph to allow the yardstick to be same through out. This dataframe was used to get the most searched genre for each country over the years.

In [11]:
for i in range(2014, 2023):
    display(pd.read_csv('game' + str(i) + '.csv', index_col=0))
Super Smash Bros. for Wii U Dark Souls II Out of the Park Baseball 15 Dragon Age: Inquisition forma.8 The Binding of Isaac: Rebirth Mario Kart 8 DLC Pack 1 Diablo III: Reaper of Souls Divinity: Original Sin Dark Souls II: Crown of the Ivory King ... MX Vs ATV: Supercross Gravity Badgers Deus Ex: The Fall One Piece: Romance Dawn Wayward Manor 4PM SoulCalibur: Lost Swords Rekoil Sonic Boom: Rise of Lyric Magus
geoName
Afghanistan NaN 0.000000 0.0 0.000000 0.000000 0.000000 0.0 0.000000 0.000000 0.0 ... 0.0 0.0 0.000000 0.0 0.000000 0.0 0.0 NaN 0.0 0.000000
Albania 0.0 354.545455 0.0 222.580645 88.679245 0.000000 0.0 108.333333 0.000000 0.0 ... 0.0 0.0 0.000000 0.0 0.000000 0.0 0.0 0.0 NaN 0.000000
Algeria 40.0 401.538462 0.0 162.222222 154.285714 13.170732 0.0 255.789474 22.191781 0.0 ... 0.0 0.0 29.552239 0.0 8.181818 0.0 0.0 0.0 0.0 11.428571
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 0.0 0.000000 0.0 0.000000 0.000000 0.000000 0.0 0.000000 0.000000 0.0 ... 0.0 0.0 0.000000 0.0 0.000000 0.0 0.0 0.0 0.0 0.000000
Zimbabwe 0.0 0.000000 0.0 69.491525 0.000000 NaN 0.0 49.253731 194.117647 0.0 ... 0.0 0.0 0.000000 0.0 0.000000 0.0 0.0 0.0 0.0 0.000000
Åland Islands 0.0 0.000000 0.0 36.986301 0.000000 0.000000 0.0 222.580645 0.000000 0.0 ... 0.0 0.0 0.000000 0.0 0.000000 0.0 0.0 0.0 0.0 0.000000

250 rows × 232 columns

The Witcher 3: Wild Hunt Journey Bloodborne Mario Kart 8 DLC Pack 2 The Witcher 3: Wild Hunt - Hearts of Stone Pillars of Eternity 3D Gunstar Heroes Dark Souls II: Scholar of the First Sin Nuclear Throne Destiny: The Taken King ... Infinity Runner Rodea the Sky Soldier Devil's Third Hatred Enki MX vs. ATV Supercross Encore Chronus Arc Tony Hawk's Pro Skater 5 Zombeer Afro Samurai 2: Revenge of Kuma Volume One
geoName
Afghanistan 73.0 0.0 0.000000 0.0 0.000000 NaN 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.000000 NaN 0.0 0.0 0.0 0.0 0.0
Albania 90.0 0.0 21.250000 0.0 NaN 0.000000 0.0 0.0 0.0 0.0 ... NaN 0.0 NaN 0.000000 5.151515 0.0 0.0 NaN 0.0 0.0
Algeria 94.0 0.0 6.244898 0.0 1.594937 5.764706 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.593407 0.000000 0.0 0.0 0.0 0.0 0.0
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara 0.0 0.0 0.000000 0.0 0.000000 0.000000 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0
Yemen 70.0 NaN 90.000000 0.0 0.000000 0.000000 0.0 NaN 0.0 0.0 ... NaN NaN 0.0 0.000000 0.000000 0.0 NaN 0.0 0.0 0.0
Zambia 49.0 0.0 0.000000 0.0 0.000000 0.000000 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0
Zimbabwe 73.0 0.0 0.000000 0.0 0.000000 0.000000 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 244 columns

Out of the Park Baseball 17 The Witcher 3: Wild Hunt - Blood and Wine Forza Horizon 3: Hot Wheels Stephen's Sausage Roll NBA 2K17 Dark Souls III: The Ringed City Titanfall 2 Battlefield 1 World of Warcraft: Legion The Witness ... Zenith (2016) 7 Days to Die The Huntsman: Winter's Curse MilitAnt Bombshell (2016) Dead or Alive Xtreme 3: Fortune Umbrella Corps Crystal Rift Ghostbusters Dino Dini's Kick Off Revival
geoName
Afghanistan 0.0 0.000000 0.000000 0.0 0.00000 108.333333 0.00000 150.000000 0.000000 0.000000 ... 0.0 0.0 0.0 0.0 0.0 0.000000 0.0 0.0 0.000000 0.0
Albania 0.0 0.000000 0.000000 0.0 0.00000 112.765957 0.00000 100.000000 26.582278 20.481928 ... 0.0 0.0 0.0 0.0 0.0 0.000000 0.0 0.0 38.888889 0.0
Algeria 0.0 78.571429 104.081633 0.0 29.87013 525.000000 29.87013 455.555556 138.095238 28.205128 ... 0.0 0.0 0.0 0.0 0.0 20.481928 0.0 0.0 7.526882 0.0
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara 0.0 0.000000 0.000000 0.0 0.00000 0.000000 0.00000 0.000000 0.000000 0.000000 ... 0.0 0.0 0.0 0.0 0.0 0.000000 0.0 0.0 0.000000 0.0
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 0.0 0.000000 0.000000 0.0 0.00000 0.000000 0.00000 0.000000 0.000000 0.000000 ... 0.0 0.0 0.0 0.0 0.0 0.000000 0.0 0.0 0.000000 0.0
Zimbabwe 0.0 25.000000 0.000000 0.0 0.00000 0.000000 0.00000 0.000000 0.000000 0.000000 ... 0.0 0.0 0.0 0.0 0.0 0.000000 0.0 0.0 16.279070 0.0
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 282 columns

Super Mario Odyssey Divinity: Original Sin II Persona 5 Mario Kart 8 Deluxe F1 2017 Final Fantasy XIV: Stormblood Rez Infinite Horizon Zero Dawn NieR: Automata Nex Machina: Death Machine ... Moto Racer 4 Inmates Verdun Reservoir Dogs: Bloody Days Dead Alliance Touhou Kobuto V: Burst Battle Rugby 18 Inner Chains Dying: Reborn Vroom in the Night Sky
geoName
Afghanistan 0.0 NaN 0.000000 0.000000 0.000000 0.0 0.0 0.000000 0.00000 0.0 ... NaN 0.0 0.000000 0.0 NaN NaN 0.0 0.0 0.0 0.0
Albania 26.0 0.000000 0.000000 0.000000 0.000000 0.0 0.0 0.000000 0.00000 0.0 ... 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Algeria 48.0 9.176471 31.870968 17.333333 5.142857 0.0 0.0 56.333333 39.22807 0.0 ... 0.0 0.0 5.777778 0.0 0.0 0.0 0.0 0.0 0.0 0.0
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 0.0 0.000000 0.000000 0.000000 0.000000 0.0 0.0 0.000000 0.00000 0.0 ... 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Zimbabwe 0.0 0.000000 0.000000 0.000000 0.000000 0.0 0.0 0.000000 0.00000 0.0 ... 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Åland Islands NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

250 rows × 322 columns

Undertale Forza Horizon 4 Bastion Monster Hunter: World Return of the Obra Dinn Hyper Light Drifter Ikaruga Velocity 2X Transistor Destiny 2: Forsaken ... Tennis World Tour 2 Bravo Team KURSK Gungrave VR Hello Neighbor Heavy Fire: Red Shadow Underworld Ascendant Fantasy Hero: Unsigned Legacy Gene Rain Wild West Online
geoName
Afghanistan NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Albania 58.0 0.000000 0.000000 74.666667 0.0 0.0 NaN 0.0 0.0 0.0 ... 0.0 0.0 0.000000 0.0 60.439024 0.0 0.00000 0.0 0.0 0.0
Algeria 41.0 119.787879 29.059701 151.714286 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 10.411765 0.0 78.209302 0.0 12.95122 0.0 0.0 0.0
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra 0.0 0.000000 0.000000 NaN 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.000000 0.0 0.000000 0.0 0.00000 0.0 NaN 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara 0.0 0.000000 0.000000 0.000000 NaN 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.000000 0.0 0.000000 0.0 0.00000 0.0 0.0 0.0
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 0.0 0.000000 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.000000 0.0 0.000000 0.0 0.00000 0.0 0.0 0.0
Zimbabwe 0.0 28.205128 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.000000 0.0 0.000000 0.0 0.00000 0.0 0.0 0.0
Åland Islands 0.0 0.000000 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.000000 0.0 0.000000 0.0 0.00000 0.0 0.0 0.0

250 rows × 305 columns

Beat Saber Final Fantasy XIV: Shadowbringers Disco Elysium Tetris Effect: Connected F1 2019 Asgard's Wrath What Remains of Edith Finch Baba Is You Dragon Quest Builders 2 MLB The Show 19 ... Wolfenstein: Cyberpilot Modern Combat: Blackout Decay of Logos Monster Jam Steel Titans Paranoia: Happiness is Mandatory WWE 2K20 Everreach: Project Eden Dollhouse Blades of Time Eternity: The Last Unicorn
geoName
Afghanistan 0.0 0.0 0.0 NaN 0.000000 0.0 NaN 0.0 0.0 0.0 ... 0.0 194.117647 0.0 0.0 NaN 0.000000 0.0 0.0 NaN 0.0
Albania 0.0 0.0 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 0.0 ... 0.0 88.679245 0.0 0.0 0.0 0.000000 0.0 0.0 0.000000 0.0
Algeria 22.0 0.0 0.0 0.0 15.975904 0.0 0.0 0.0 0.0 0.0 ... 0.0 144.857143 0.0 0.0 0.0 28.849315 0.0 0.0 23.298701 0.0
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara 0.0 0.0 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 0.0 ... 0.0 NaN 0.0 0.0 0.0 0.000000 0.0 0.0 0.000000 0.0
Yemen NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Zambia 0.0 0.0 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 0.0 ... 0.0 17.647059 0.0 0.0 0.0 8.695652 0.0 0.0 0.000000 0.0
Zimbabwe 0.0 NaN 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.000000 0.0 0.0 0.0 0.000000 0.0 0.0 0.000000 0.0
Åland Islands 0.0 0.0 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.000000 0.0 0.0 0.0 0.000000 0.0 0.0 0.000000 0.0

250 rows × 244 columns

Persona 5 Royal Half-Life: Alyx Demon's Souls DOOM Eternal Pistol Whip Final Fantasy VII Remake Intergrade Super Mega Baseball 3 Grindstone Monster Hunter: World - Iceborne Persona 4 Golden ... Last Encounter Star Horizon Remothered: Broken Porcelain The Dark Eye : Book of Heroes Cooking Mama: Cookstar Arc of Alchemist The Elder Scrolls: Blades Street Power Soccer Tamarin XIII (Remake)
geoName
Afghanistan 0.0 0.000000 0.000000 108.333333 0.0 150.000000 0.0 0.0 0.000000 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000 0.0
Albania 33.0 0.000000 0.000000 0.000000 0.0 72.583333 0.0 0.0 0.000000 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000 0.0
Algeria 17.0 60.103448 13.511628 73.603774 0.0 213.428571 0.0 0.0 37.289855 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 9.222222 0.0
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen 33.0 NaN 0.000000 0.000000 0.0 130.058824 0.0 0.0 0.000000 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000 0.0
Zambia 0.0 0.000000 0.000000 8.695652 0.0 0.000000 0.0 0.0 0.000000 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000 0.0
Zimbabwe 0.0 0.000000 0.000000 0.000000 0.0 33.333333 0.0 0.0 0.000000 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000 0.0
Åland Islands 0.0 0.000000 0.000000 0.000000 0.0 NaN 0.0 0.0 0.000000 0.0 ... 0.0 0.0 0.0 NaN 0.0 0.0 0.0 0.0 NaN 0.0

250 rows × 255 columns

Tetris Effect: Connected Psychonauts 2 Tony Hawk's Pro Skater 1 + 2 Super Mario 3D World + Bowser's Fury Synth Riders DUSK Ratchet & Clank: Rift Apart Deathloop Halo Infinite Crash Bandicoot 4: It's About Time ... Tennis World Tour 2 Date Night Bowling TASOMACHI: Behind the Twilight Elite: Dangerous - Odyssey Apex Legends AWAY: The Survival Series Akiba's Trip: Hellbound & Debriefed Balan Wonderworld Of Bird and Cage eFootball 2022
geoName
Afghanistan 0.0 0.000000 0.0 0.000000 0.0 38.888889 0.00 0.000000 0.000000 0.000000 ... 0.0 0.0 0.0 0.0 0.000000 0.0 0.0 0.0 0.0 0.000000
Albania 0.0 0.000000 0.0 0.000000 0.0 0.000000 0.00 0.000000 69.491525 0.000000 ... 0.0 0.0 0.0 0.0 156.410256 0.0 0.0 0.0 0.0 49.253731
Algeria 0.0 26.582278 0.0 72.413793 0.0 0.000000 56.25 38.888889 156.410256 78.571429 ... 0.0 0.0 0.0 0.0 177.777778 0.0 0.0 0.0 0.0 150.000000
American Samoa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen 0.0 0.000000 0.0 0.000000 0.0 0.000000 0.00 0.000000 0.000000 0.000000 ... 0.0 0.0 0.0 0.0 88.679245 0.0 0.0 0.0 0.0 51.515152
Zambia 0.0 0.000000 0.0 0.000000 0.0 0.000000 0.00 0.000000 0.000000 0.000000 ... 0.0 0.0 0.0 0.0 12.359551 0.0 0.0 0.0 0.0 23.456790
Zimbabwe 0.0 0.000000 0.0 0.000000 0.0 0.000000 0.00 0.000000 23.456790 0.000000 ... 0.0 0.0 0.0 0.0 9.890110 0.0 0.0 0.0 0.0 53.846154
Åland Islands 0.0 0.000000 0.0 0.000000 0.0 0.000000 0.00 0.000000 0.000000 0.000000 ... 0.0 0.0 0.0 NaN 0.000000 0.0 0.0 0.0 0.0 0.000000

250 rows × 142 columns

Elden Ring The Stanley Parable: Ultra Deluxe Rogue Legacy 2 Xenoblade Chronicles 3 Horizon Forbidden West Monster Hunter Rise Monster Hunter Rise.1 Citizen Sleeper Tunic Kirby and the Forgotten Land ... Dynasty Warriors 9 Empires The Ramp Dusk Diver 2 DOLMEN Edge Of Eternity Tower of Fantasy Diablo Immortal Matchpoint: Tennis Championships The Waylanders Babylon's Fall
geoName
Afghanistan NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Albania 62.0 0.0 0.0 0.000000 0.000000 0.000000 0.000000 0.0 0.000000 0.0 ... 0.0 0.0 0.0 0.000000 0.0 0.000000 26.406780 0.0 0.0 0.0
Algeria 85.0 0.0 0.0 1.304348 6.428571 8.809524 8.809524 0.0 0.957447 0.0 ... 0.0 0.0 0.0 4.480519 0.0 9.590164 15.612245 0.0 0.0 0.0
American Samoa 0.0 0.0 0.0 0.000000 0.000000 0.000000 0.000000 0.0 0.000000 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Andorra NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Western Sahara 0.0 0.0 0.0 0.000000 0.000000 0.000000 0.000000 0.0 0.000000 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yemen 74.0 0.0 0.0 0.000000 0.000000 0.000000 0.000000 0.0 0.000000 0.0 ... NaN 0.0 0.0 0.000000 0.0 0.000000 0.000000 0.0 0.0 0.0
Zambia 14.0 0.0 0.0 0.000000 2.659794 0.000000 0.000000 0.0 0.000000 0.0 ... 0.0 0.0 0.0 0.000000 0.0 0.000000 0.000000 0.0 0.0 0.0
Zimbabwe 22.0 0.0 0.0 0.000000 0.000000 0.000000 0.000000 0.0 0.000000 0.0 ... 0.0 0.0 0.0 0.000000 0.0 0.000000 0.000000 0.0 0.0 0.0
Åland Islands 44.0 0.0 0.0 0.000000 0.000000 0.000000 0.000000 0.0 0.000000 0.0 ... 0.0 0.0 0.0 0.000000 0.0 0.000000 0.000000 0.0 NaN 0.0

250 rows × 110 columns

This dataframe was created using the interest over region graphs of google trends. Each dataframe is for a different year. The index columns shows the country each value was from. Each subsequent column shows the proportional mean amount of searches for the column name and country. This was done by comparing each value with a 'yardstick', another keyword, which was not a game, and scaling each graph to allow the yardstick to be same through out. This dataframe was used to get the most searched game for each country over the years.

Data Cleaning¶

For data cleaning, be clear in which dataset (or variables) are used, what has been done for missing data, how was merging performed, explanation of data transformation (if any). If data is calculated or summarized from the raw dataset, explain the rationale and steps clearly.

Most data cleaning was manually done for the game codes as some were faulty, due to the lack of consistency in google trends. There were also some wrong suggestions, that led to the incorrect code being recorded. As the faulty codes were random, but in my opinion were still useful, I manually went to google trends, out the faulty terms and chose the correct code. As some games were given codes when they did not even have one, their names were also sometimes put instead. The code for this will be in the appendix.

Likewise, for the merging of certain country names, to get the right country code, there had to be some manual cleaning of names again, so both had the same names for the merging. This code will be in the EDA. The rest of the cleaning is here, even though some was also manual.

In [12]:
df = pd.read_csv('metaScrape.csv', index_col=0)
In [13]:
df.iloc[df[df.name == 'God of War'].iloc[:2, 0].index, 0] = 'God of War (2018)' # This is to prevent two games with the same name from getting dropped, as they were different games
In [14]:
df = df.drop_duplicates(subset=['name'], ignore_index=True) # Removes all duplicate games, which were released in different platform, as recounting them will jumble up the google trends data
In [15]:
df = df[~(df['name'].str.contains('Edition'))]
df = df[~(df['name'].str.contains('Collection'))]
df = df[~(df['name'].str.contains('Remaster'))]
df = df[~(df['name'].str.contains('HD'))] # Removes any remasters, collections or editions as we only want to analyse new games
df['index'] = df.index
In [16]:
df3 = pd.read_csv('metaScrape4.csv')
df3 = df3[df3.sales.notnull()] # Removes null sales
df3 = df3.drop_duplicates(subset=['name'], keep='first') # Drops any duplicate games to preven double count
df3.sales = df3.sales.str.split('m').str[0].astype(float) # Convert sales to float
df3 = df3.drop(df3[df3.sales == 0].index) # Drop games with no sales, as the theses games are obscure games which were not in metacritic
In [17]:
df_genres = pd.read_csv('genres.csv')
In [18]:
df_genres.iloc[0, -1] = '/m/06c9r' # Corrects a code
In [19]:
df_genres.drop(df_genres.loc[df_genres['genre'] == '', 'index'], inplace=True) # Drops empty genres
In [20]:
df_genres.loc[df_genres.Code.isnull(), 'Code'] = df_genres.loc[df_genres.Code.isnull(), 'genre'] # Sets null code as the name
In [21]:
df_genres.drop(df_genres.loc[df_genres['genre'].isin(['Massively Multiplayer', 'Sim', 'Miscellaneous', 'Other', 'Soccer', 'Party / Minigame', 'Videos']), 'index'], inplace=True) # Removes genres which are sub genres, random, or already given before with a slightly different name

EDA¶

For each research questions shortlisted, outline your methodology in answering them. Discuss interesting observations or results discovered. Please note to only show EDA that's relevant to answering the question at hand. If you have done any data modeling, include in this section.

Question 1¶

Firstly, we would like to format some of our dataframes to make some useful EDAs. We can do this by first applying a function to extract the genres from the list for each row

In [22]:
tqdm.pandas()

df = pd.read_csv('metaScrape3.csv', index_col=0)  # Reading the csv which contains the webscrape data from dataset 1 and 1.1
dict1 = {'genre' : [], 'rating' : [], 'year' : []} # Defining a new dictionary, which will be converted to a dataframe
def getGenre(row): # Function which goes through all games and separates the genres which is a list
    gameGenre = row.genre.split(',')
    for i in gameGenre:
        dict1['genre'].append(i)
        dict1['rating'].append(row.rating)
        dict1['year'].append(row.year)
        
        
df.apply(getGenre, axis=1) 
df_genres = pd.DataFrame(dict1) 

After defining the dataframe to make the graph, we will firstly see the count of genres for all the games, and also ensure that there are no duplicates. Due to the sheer amount of genres, I just want to analyse the top 15 genres with the most games. We would also define the proportion for each genre, to allow us to make the treemap.

In [23]:
genreCount = pd.DataFrame(df_genres[['genre']].value_counts(), columns=['Count']) # Counting the number of times a genre appeared
genres = pd.read_csv('genres.csv', index_col=0) # Reading the csv which contains the genres we would like to see, as some are just duplicates, with slightly different names
genreCount = pd.merge(genreCount, genres['genre'], on='genre', how='right') # Merging both so there are no duplicate genres
genreCount = genreCount.sort_values(by='Count', ascending=False)[:15] # As there are around 160 genres, we just want to analyse and compare the share of the top 15
genreCount['Proportion'] = (genreCount.Count / genreCount.Count.sum())*100 # Calculating proportion for treemap

Finally, after all the set up, let us make some graphs. Lets us visualise the graphs. I am making one bar plot to allow me to easily compare the number of games for each genre. We will also make a donut chart to compare the percentage share among the top most common genres

In [24]:
plt.figure(figsize=(25,5))
ax = sns.barplot(x ='genre', y='Count', data = genreCount, palette="viridis")
ax = ax.bar_label(ax.containers[0])
plt.title('Comparison between the number of games for each genre')
plt.ylabel('Number of games')
plt.xlabel('Genre')
plt.show()
px.pie(genreCount, values='Count', names='genre', hole=0.5,  title="Comparison between the percentage of games for each genre")

As we can see, most games are under the Action genre, which has a 19.3% share amount the most common genres and has 4345 games. It has a very big leap comapred to second place which is Shooter with 9.6% and 2162 games. The change in games count for subsequent genres is realtively minute.

Let us compare with the most searches genres. yearlygenre.csv include the genres which have the most interest over the entire year, for each year from 2004 to 2022. From this data, we would like to see the genres that appeared the most, with a maximum of 1 per year.

In [25]:
dfyear = pd.read_csv('yearlygenre.csv', index_col=0)
dfCount = pd.DataFrame(dfyear.genre.value_counts()).reset_index().iloc[:15]
dfCount.columns = ['genre', 'numYear']
plt.figure(figsize=(30,10))
sns.barplot(dfCount, y='numYear', x='genre')
plt.title('Comparison of the number of years a genre was in the top 15 seached genres of the year')
plt.ylabel('Number of Years')
plt.xlabel('Genre')
plt.show()
In [26]:
dfCount.merge(genreCount, on='genre', how='inner')
Out[26]:
genre numYear Count Proportion
0 Puzzle 19 1089 4.837420
1 3D 19 1204 5.348259
2 Role-Playing 18 1475 6.552061
3 Shooter 14 2162 9.603767

There is a overlap of 4 games only, with all of them having high number of years where they were part of the top 15 genres with the most interest. Firstly, puzzle video games are very popular especially for casual audiences, which are a larger demographic than hard core video gamers. Many popular puzzle games include Candy Crush, Tetris, etc. Due to the rise in technology, most games are also 3D, with certain retro or indie games which are 2D. With how many gamers play mainstream games, it makes sense that 3D is a popular and common genre. Role-playing and shooters are few of the most widespread genres which have a range of acclaimed games such as Cyberpunk and Valorant, so it makes sense that they are also the most searched. They may also be subjectted to controversy, possibly increasing the amount of searches regarding them.

Question 2¶

Firstly, we will read the original scraped data and some manipulation to it to see the platform with the most games per year.

In [27]:
platforms  = pd.read_csv('metaScrape.csv', index_col=0)

# This is basically to only get the top platform. This is done by first getting the count of the games and sorting by it, and then dropping any duplicate years. This will ensure only the highest count stays the same
platsort = platforms.groupby(['year','data'])['name'].count().reset_index()
platsort = platsort.sort_values(by='name',ascending=False) 
platsort = platsort.drop_duplicates(subset=['year'],keep='first').sort_values(by='year', ascending=False) 

f, ax = plt.subplots(figsize=(6, 15))
sns.set_color_codes("pastel")
platsort['yearStr'] = platsort.year.astype(str) # For the barplot to regonise what the labels are, we need to convert it to string
fig = sns.barplot(x="name", y="yearStr", data=platsort, color="r")
for i, p in enumerate(zip(platsort.data, platsort['name'])): # This is to label each column with the platform name and the number of games for it
    plt.text(s=(str(p[0]) + ' : ' + str(p[1])),x=10,y=i,fontweight='bold',color='white')
plt.title('Comparison between the number of games released by the top platform of the year')
plt.xlabel('Number of games')
plt.ylabel('Year')
plt.show()

There are many years where a certain console overshadowed PC and other consoles. These consoles were seen normally the most famous during its time, such as the PlayStation 2 in 2002. This could have led more developers to make games for this console, and thus pad the number of games for that console.
There is an overall increasing trend, except for dips in certain years. 2006, 2012, 2014 and 2019 had a dip for the number of games. I think this is due to a new generation of consoles releasing the next year, or was already released. This may have caused developers to spend more time with the new console tech. The dip for 2022 is mainly due to the fact that this data is until Aug 2022. PC has the most games in the early 2010s and 2000s due to the switch in console generation, but recently, due to many console exclusives being also released on PCs has caused them to be the platform with the most games recently.

In [28]:
plt.figure(figsize=(40, 7))
platCount = platforms.groupby('data')[['name']].count().reset_index().sort_values(by='name',ascending=False)
ax = sns.barplot(x ='data', y='name', data = platCount, palette="viridis")
ax = ax.bar_label(ax.containers[0])
plt.title('Comparison between the number of games released for each platform')
plt.ylabel('Number of Games')
plt.xlabel('Platform')
Out[28]:
Text(0.5, 0, 'Platform')

PC as a platform has the most number of games, by a mile, with 5087, double of the second place PS4. The top 4 runner ups were all once the platform with the most games in a year, thus it makes sense they are the closest runner ups. There are what looks like stepped pattern in the decrease of the number of games. The platform with the least games was Stadia, which was unsupported due to being clound only, and also the lack of any games from a first party games studio. The last 3 platfroms, before Stadia, all were at the end of their life, and only had gams for 2 years for N64 and DreamCast and 4 years for the PS1. The inverse is true for the PS5 and Xbox Series X, with both launching very recently and only have 3 years of games.

In [29]:
dict1 = {'genre' : [], 'rating' : [], 'year' : [], 'platform' : []}
def getGenre(row):
    gameGenre = row.genre.split(',')
    for i in gameGenre:
        dict1['genre'].append(i)
        dict1['rating'].append(row.rating)
        dict1['year'].append(row.year)
        dict1['platform'].append(row.data)
platforms = platforms.drop('month', axis=1)
platforms = platforms.merge(df.loc[:, ['name', 'genre', 'rating']], on='name', how='left').dropna()
platforms.progress_apply(getGenre, axis=1)
df_plat = pd.DataFrame(dict1)
  0%|          | 0/18692 [00:00<?, ?it/s]

Over here, we reuse the function to extract the genre, but now for dataframe platforms. However, we need the genre and rating too, so we will merge it first with the earlier dataframe to get the rating and genre associated with the games.

Now using this, let us make some heatmaps.

In [30]:
plt.figure(figsize=(8,8))
df_plat = df_plat[df_plat['genre'].isin(genreCount.genre)] # We are only displaying the genres with the most games, this will thus allow us to have more datapoints
dfHeat = df_plat.groupby(['platform','genre'])['rating'].median().reset_index()
dfHeat = dfHeat.pivot('platform','genre','rating')
sns.heatmap(dfHeat, cmap='turbo')
plt.title('Median rating by platform and genre')
plt.xlabel('Genre')
plt.ylabel('Platform')
Out[30]:
Text(50.99999999999999, 0.5, 'Platform')

There are many missing genres for some platform. One trend is that many recent platforms such as Xbox Series X, Stadia, Switch and PlayStation 5 do not have the genres of Fantasy, Modern and Sci-Fi. A game in a modern setting is not novel anymore, so this could lead to developers not thinking that their game would be under such a genre. For the other 2, they are mainly time consuming games to make, with the scale of the games and also due to creating new lore. Stadia, which is a largely unsupported platform due to being new and having a cloud nature, has a low amount of genres. The missing genres for the Nintendo 64 and PlayStation 1 was due to the low amount of games released for both platforms.

For 2D games, the the DreamCast has two of the most highest median rating, one for First-Person and one for 2D. Xbox Series X however has the highest overall median rating for all genres. The rating from most of the other genres and platforms are in the 65 to 77 range, with some being less and more. The lowest was for Adventure in the DreamCast. The PlayStation has the highest number of low rating genres with 5 while the PlayStation 5 has the highest number of high rating genres with 9 games.

The genre with the most low ratings is Adventure with while the genre with the most high ratings is 2D.

In [31]:
plt.figure(figsize=(8,8))
dfHeat = df_plat.groupby(['platform','year'])['rating'].median().reset_index()
dfHeat = dfHeat.pivot('platform','year','rating')
sns.heatmap(dfHeat,cmap='magma')
plt.title('Median rating by platform and year')
plt.xlabel('Year')
plt.ylabel('Platform')
Out[31]:
Text(50.99999999999999, 0.5, 'Platform')

There is a trend where for plenty of platforms (3DS, DS, DreamCast, GBA, N64, PS2, PS4, Wii U, Xbox One) where the last year of the platforms life has the highest median rating compared to the other years. Some also have the opposite trend, such as Stadia and PS1, where their last year had a significant drop in rating compared to the previous years. Over the years, the rating for many platforms seem to increase, however some do not have a clear trend, such as GBA, PS1, PS2, PS3. The highest median rating is for the Wii U in 2017 whereas the lowest is the PS1 in 2003. The platform with the shortest years of games were Stadia, DreamCast and N64. The platform with the longest years of games released was the PC with 23 while the console with the longest years of games was the PS2 with 11.

In [32]:
plt.figure(figsize=(8,8))
mean = df_genres[df_genres['genre'].isin(genreCount.genre)]
dfHeat = mean.groupby(['year','genre'])['rating'].median().reset_index()
dfHeat = dfHeat.pivot('year','genre','rating')
sns.heatmap(dfHeat,cmap='viridis')
plt.title('Median rating by year and genre')
plt.xlabel('Genre')
plt.ylabel('Year')
Out[32]:
Text(51.0, 0.5, 'Year')

The missing of any games from the Fantasy, Mordern and Sci-Fi could explain why they were missing for the PS5, and Xbox Series X. Another thing about these genres is that the last few years where they were released had really low ratings, for Fantasy in 2019, for Modern in 2017 and for Sci-Fi in 2019. For many genres, it seems that their highest ratings were at the start of the 2000s, leading to a plateu in ratings, with some variation for multiple uears, until recently where the ratings increased again. This could be due to a lower amount of games made from 2000 to 2004. Recently, the increase could be due to geeting the median of games released before September, as a result causing us to miss some low rated games. I however also think that the qualitly controls of game selling platforms have also increased, however there could still be some poor rated games being made.

Question 3¶

In [33]:
sales = pd.read_csv('sales.csv')
In [34]:
fig = go.Figure(data=go.Violin(y=sales["sales"], box_visible=True, line_color='black',
                               meanline_visible=True, fillcolor='lightseagreen', opacity=0.6,
                               x0='Sales / 10e6'))
fig.update_layout(
    title_text="Violinplot of sales",
)
fig.update_layout(yaxis_zeroline=False) # Removes the y-axis zeroline
fig.show()

The distributuon is skewed to the right and it is unimodal. The median sales is 0.28 10e6, while the mean sales is 1.26 10e6. The range is 237.99 10e6 while the IQR is 0.89 10e6. There are a lot of outliers that skews the range and mean severly. All of the outliers have much more the the uppper whisker.

Let us now look when games are released

In [35]:
list1 = []
dict1 = {'Jan' : 1, 'Feb' : 2, 'Mar' : 3, 'Apr' : 4, 'May' : 5, 'Jun' : 6, 'Jul' : 7, 'Aug' : 8, 'Sep' : 9, 'Oct' : 10, 'Nov' : 11, 'Dec' : 12} # This has to be done as to_datetime uses int 
def month(row):
    list1.append(dict1[row.month])
df.progress_apply(month, axis=1)
df['num'] = list1
df['date_formatted'] = pd.to_datetime( # Converts month and year to a datetime object, specifying date will be too specific
    dict(
        year=df['year'], 
        month=df['num'], 
        day=1
    ))
df['year_formatted'] = pd.to_datetime( # Converts year to datetime object
    dict(
        year=df['year'], 
        month=1, 
        day=1
    ))


datedf = df.groupby('date_formatted')[['name']].count().reset_index() 
  0%|          | 0/12058 [00:00<?, ?it/s]
In [36]:
# Create figure
fig = go.Figure()

fig.add_trace(
    go.Scatter(x=list(datedf.date_formatted), y=list(datedf.name), name='Games per month')) # Makes a lineplot for 

# Sets title
fig.update_layout(
    title_text="Timeseries of number of games released",
    yaxis_title='Number of games',
    xaxis_title='Date'
)

# Adds a range slider
fig.update_layout( 
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=6,
                     label="6m",
                     step="month",
                     stepmode="backward"),
                dict(count=1,
                     label="YTD",
                     step="year",
                     stepmode="todate"),
                dict(count=1,
                     label="1y",
                     step="year",
                     stepmode="backward"),
                dict(step="all")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date"
    )
)

fig.show()
In [37]:
pd.plotting.autocorrelation_plot(datedf.name)
Out[37]:
<AxesSubplot: xlabel='Lag', ylabel='Autocorrelation'>

We can see from this autocorrelation graph that our data is periodic, and repeats every 12 months. So let us smoothen that out

In [38]:
# Create figure
fig = go.Figure()

fig.add_trace(
    go.Scatter(x=list(datedf.date_formatted), y=signal.savgol_filter(list(datedf.name), 12, 2), name='Smoothened games per month')) # Makes a lineplot for 


# Sets title
fig.update_layout(
    title_text="Timeseries of number of games released",
    yaxis_title='Number of games',
    xaxis_title='Date'
)

# Adds a range slider
fig.update_layout( 
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=6,
                     label="6m",
                     step="month",
                     stepmode="backward"),
                dict(count=1,
                     label="YTD",
                     step="year",
                     stepmode="todate"),
                dict(count=1,
                     label="1y",
                     step="year",
                     stepmode="backward"),
                dict(step="all")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date"
    )
)

fig.show()

We can see a upside down parabola shape from the April of one year to the April of another, with it repeating again and again until 2010, with March being the least for 2008. We can safely say that April from these years had the lowest. The maximum for this parabola was generally October or November, with it being other months as the humps became less pronounced.

In [39]:
list1 = []

def month(row):
    list1.append(dict1[row.month])
sales.apply(month, axis=1)
sales['num'] = list1
sales['date_formatted'] = pd.to_datetime(
    dict(
        year=sales['year'], 
        month=sales['num'], 
        day=1
    )
)
salesdf = sales.groupby('date_formatted')[['sales']].median().reset_index()
salesdf.sales = salesdf.sales * 10e6
In [40]:
# Add traces
list2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
px.line(x=list2, y=sales.groupby('num')[['sales']].median().sales)
fig.update_layout(
    title_text= "Trend of games sales"
)
fig.update_xaxes(title_text="Months")

# Set y-axes titles
fig.update_yaxes(title_text="Sales / 10e6")
fig.show()

px.line(x=list2, y=sales.groupby('num')[['sales']].count().sales)
    

# Add figure title
fig.update_layout(
    title_text= "Trend of number of games released"
)

# Set x-axis title
fig.update_xaxes(title_text="Months")

# Set y-axes titles
fig.update_yaxes(title_text="Number of games")

fig.show()

There are large hump for both graphs from September to November. This could be due to the the holiday season of Novemeber and Decmeber, which generally have a lot of holidays (Christmas, Thanksgiving). There is also an increase of sales in May, but no increase in games released. This increase in sales could be due to the summer holidays in certain countries, however developers may prioritise the winter holidays more. There is a drop in games sales and number of games released in July, January and December.

In [41]:
plt.figure(figsize=(12,8))
sns.pointplot(data=sales.groupby('day')[['sales']].median(), y="sales", x=sales.groupby('day')[['sales']].median().index)
plt.title('Median of sales over day')
plt.xlabel('Day')
plt.ylabel('Median of Sales/10e6')
plt.plot()
Out[41]:
[]

There are multiple instances in the graph of an increased, followed by a decreased and so on. In fact this trend is reprodruced multiple times. This could be as since after a game releases in one country first, the subsequent days will see releases in other countries, as a result, it could be possible that developers do not want to release during the hype of another game

In [42]:
# Create figure
fig = go.Figure()

fig.add_trace(
    go.Scatter(x=list(salesdf.date_formatted), y=list(salesdf.sales)))

# Set title
fig.update_layout(
    title_text="Time series with range slider and selectors"
)

# Add range slider
fig.update_layout(
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=6,
                     label="6m",
                     step="month",
                     stepmode="backward"),
                dict(count=1,
                     label="YTD",
                     step="year",
                     stepmode="todate"),
                dict(count=1,
                     label="1y",
                     step="year",
                     stepmode="backward"),
                dict(step="all")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date"
    )
)

fig.show()

The sales of games has increased severly recently, with Jan 2022, having the highest sales of 110 million. There are however other spikes over the years as well. THe lowest sales in month was Aug 2005 with 770K.

Question 4¶

In [43]:
fig = go.Figure(data=go.Violin(y=df["rating"], box_visible=True, line_color='black',
                               meanline_visible=True, fillcolor='lightseagreen', opacity=0.6,
                               x0='Rating'))

fig.update_layout(yaxis_zeroline=False, title_text='Violin plot of game ratings')
fig.show()
plt.figure(figsize=(10,10))
df['rating'].hist(edgecolor='black')
plt.title('Histogram of rating')
plt.ylabel('Number of games')
plt.xlabel('Rating')
plt.show()
# ax = plt.axvline(df['rating'].median(),color='r',linestyle='dashed')
# plt.annotate('Median: ' + str(df['rating'].median()), xy=(32, 72), xytext=(53, 3500), fontsize=15)

The distributuon is skewed to the left and it is unimodal, with the mode in the histogram being the 72 to 80 bin.. The median rating is 72, while the mean sales is 70. The range is 87 while the IQR is 13. There are a lot of outliers that skews the range severly. All of the outliers have much less rating than the the lower whisker in the violin plot.

In [44]:
nrow=3
ncol=5
 
genres = genreCount.genre
fig = plt.figure(figsize=(16,8))
gs = fig.add_gridspec(nrow, ncol)
axes = gs.subplots(sharex=True, sharey=True)


df_list = []
for i in genres:
    df_list.append(df_genres.loc[df_genres.genre == i,'rating'])
sns.set_color_codes("bright")
for count in range(nrow * ncol):
    nrow, ncol = divmod(count, 3)
    df_list[count].hist(edgecolor='black', alpha=0.3, color='red', ax=axes[ncol, nrow])
    axes[ncol, nrow].text(30, 750, str(genres.iloc[count]))
    
    axes[ncol, nrow].axvline(df['rating'].median(),color='b',linestyle='dashed') # This shows the median of all game ratings
    axes[ncol, nrow].axvline(df_list[count].median(),color='g',linestyle='dashed') # This shows the median of the ratings for the games of these genres
    
plt.suptitle("Rating distribution across genres")
plt.show()

The median rating of all the genres are very close to the median rating of all games. However, some genres have slightly higher ratings, which are Role-Playing, Platformer, Strategy and 2D (which has the highest median rating). Some also have lower ratings, which are Action, Shooter, 3D (which has the lowest median rating), Arcade and Modern.

In [45]:
nrow=5
ncol=4
 
years = df.year.unique()
fig = plt.figure(figsize=(16,8))
gs = fig.add_gridspec(nrow, ncol)
axes = gs.subplots(sharex=True, sharey=True)


df_list = []
for i in years:
    df_list.append(df_genres.loc[df_genres.year == i,'rating'])

for count in range(nrow * ncol):
    nrow, ncol = divmod(count, 5)
    df_list[count].hist(edgecolor='black', alpha=0.3, color='red', ax=axes[ncol, nrow])
    axes[ncol, nrow].text(30, 500, str(years[count]))
    axes[ncol, nrow].axvline(df['rating'].median(),color='b',linestyle='dashed') # This shows the median of all game ratings
    axes[ncol, nrow].axvline(df_list[count].median(),color='g',linestyle='dashed') # This shows the median of the ratings of games from the year
plt.suptitle("Rating distribution across years")
plt.show()

The median rating of all the years are very close to the median rating of all games, however, there are larger changes then genre. 2022 has a much higher median rating than the median, while 2007 has the least. There is also another trend where from 2017 to 2022, the median rating for the year was higher than the median rating of all games. However, from 2005 to 2011, the median rating was lower than the median rating of all games

Question 5¶

In [46]:
years = dfyear.year.unique()
df_list = []
for i in years:
    df_list.append(dfyear.loc[dfyear.year == i,['genre', 'Searches']])

fig = make_subplots(
    rows=3, cols=6,
    specs = [[{"type": "pie"},{"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}],
            [{"type": "pie"},{"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}],
            [{"type": "pie"},{"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}]],
            subplot_titles=years[:18].astype(str))

for i in range(1, 4):
    for j in range(1, 7):
        fig.add_trace(go.Pie(values=dfyear.loc[dfyear.year == years[(i-1) * 6 + j - 1], 'Searches'].iloc[:5], labels=dfyear.loc[dfyear.year == years[(i-1) * 6 + j - 1], 'genre'].iloc[:5]),
                      row=i, col=j)


fig.update_layout(height=700, width=1150, showlegend=True, title_text='Percentage among top 5 most searched genre each year')
fig.show()

Puzzle has the highest perentage accross all the years, except for 2014 to 2010, where 3D games had the highest percentage of searches. It was also the only genre in all the years. From 2022 to 2017, board games had the second highest percentage. Role-playing was second from 2007 to 2005.

In [47]:
dfnew  = pd.DataFrame()
dict1 = {'Country' : [], 'Genre' : []}
def maximus(row):
    dict1['Country'].append(row.geoName)
    dict1['Genre'].append(row.iloc[1:].astype(float).idxmax())
for i in range(2004, 2023):
    dict1 = {'Country' : [], 'Genre' : []}
    dftemp = pd.read_csv('genrecountry' + str(i) + '.csv').dropna()
    dftemp.apply(maximus, axis=1)
    dftemp = pd.DataFrame(dict1)
    dftemp['Year'] = i
    dfnew = pd.concat([dfnew, dftemp])
    
# Cleaning of the names to allow us to merge and get the country codes    
dfnew.loc[dfnew.Country == 'Antigua & Barbuda', 'Country'] = 'Antigua and Barbuda'
dfnew.loc[dfnew.Country == 'Bolivia', 'Country'] = 'Bolivia (Plurinational State of)'
dfnew.loc[dfnew.Country == 'Faroe Islands', 'Country'] = 'Faroe Islands (the)'
dfnew.loc[dfnew.Country == 'Netherlands', 'Country'] = 'Netherlands (the)'
dfnew.loc[dfnew.Country == 'Bahamas', 'Country'] = 'Bahamas (the)'
dfnew.loc[dfnew.Country == 'Bosnia & Herzegovina', 'Country'] = 'Bosnia and Herzegovina'
dfnew.loc[dfnew.Country == 'Trinidad & Tobago', 'Country'] = 'Trinidad and Tobago'
dfnew.loc[dfnew.Country == 'St. Vincent & Grenadines', 'Country'] = 'Saint Vincent and the Grenadines'
dfnew.loc[dfnew.Country == 'British Virgin Islands', 'Country'] = 'Virgin Islands (British)'
dfnew.loc[dfnew.Country == 'U.S. Virgin Islands', 'Country'] = 'Virgin Islands (U.S.)'
dfnew.loc[dfnew.Country == 'Vietnam', 'Country'] = 'Viet Nam'
dfnew.loc[dfnew.Country == 'Venezuela', 'Country'] = 'Venezuela (Bolivarian Republic of)'
dfnew.loc[dfnew.Country == 'United States', 'Country'] = 'United States of America (the)'
dfnew.loc[dfnew.Country == 'United Kingdom', 'Country'] = 'United Kingdom of Great Britain and Northern Ireland (the)'
dfnew.loc[dfnew.Country == 'United Arab Emirates', 'Country'] = 'United Arab Emirates (the)'
dfnew.loc[dfnew.Country == 'Turks & Caicos Islands', 'Country'] = 'Turks and Caicos Islands (the)'
dfnew.loc[dfnew.Country == 'Tanzania', 'Country'] = 'Tanzania, United Republic of'
dfnew.loc[dfnew.Country == 'Taiwan', 'Country'] = 'Taiwan (Province of China)'
dfnew.loc[dfnew.Country == 'Sudan', 'Country'] = 'Sudan (the)'
dfnew.loc[dfnew.Country == 'Sint Maarten', 'Country'] = 'Sint Maarten (Dutch part)'
dfnew.loc[dfnew.Country == 'St. Lucia', 'Country'] = 'Saint Lucia'
dfnew.loc[dfnew.Country == 'St. Kitts & Nevis', 'Country'] = 'Saint Kitts and Nevis'
dfnew.loc[dfnew.Country == 'St. Helena', 'Country'] = 'Saint Helena, Ascension and Tristan da Cunha'
dfnew.loc[dfnew.Country == 'St. Barthélemy', 'Country'] = 'Saint Barthélemy'
dfnew.loc[dfnew.Country == 'Russia', 'Country'] = 'Russian Federation (the)'
dfnew.loc[dfnew.Country == 'Philippines', 'Country'] = 'Philippines (the)'
dfnew.loc[dfnew.Country == 'Palestine', 'Country'] = 'Palestine, State of'
dfnew.loc[dfnew.Country == 'Northern Mariana Islands', 'Country'] = 'Northern Mariana Islands (the)'
dfnew.loc[dfnew.Country == 'Niger', 'Country'] = 'Niger (the)'
dfnew.loc[dfnew.Country == 'Moldova', 'Country'] = 'Moldova (the Republic of)'
dfnew.loc[dfnew.Country == 'Marshall Islands', 'Country'] = 'Marshall Islands (the)'
dfnew.loc[dfnew.Country == 'North Macedonia', 'Country'] = 'Republic of North Macedonia'
dfnew.loc[dfnew.Country == 'Laos', 'Country'] = 'Lao People\'s Democratic Republic (the)'
dfnew.loc[dfnew.Country == 'South Korea', 'Country'] = 'Korea (the Republic of)'
dfnew.loc[dfnew.Country == 'Iran', 'Country'] = 'Iran (Islamic Republic of)'
dfnew.loc[dfnew.Country == 'Gambia', 'Country'] = 'Gambia (the)'
dfnew.loc[dfnew.Country == 'Falkland Islands (Islas Malvinas)', 'Country'] = 'Falkland Islands (the) [Malvinas]'
dfnew.loc[dfnew.Country == 'Dominican Republic', 'Country'] = 'Dominican Republic (the)'
dfnew.loc[dfnew.Country == 'Cook Islands', 'Country'] = 'Cook Islands (the)'
dfnew.loc[dfnew.Country == 'Congo - Kinshasa', 'Country'] = 'Congo (the Democratic Republic of the)'
dfnew.loc[dfnew.Country == 'Congo - Brazzaville', 'Country'] = 'Congo (the)'
dfnew.loc[dfnew.Country == 'Cayman Islands', 'Country'] = 'Cayman Islands (the)'
In [48]:
country = pd.read_csv("CountryCodesThreeLetter.csv", index_col=0)
country = country.dropna()
dfnew2 = dfnew.merge(country, on='Country', how='inner')
dfnew2.Year = dfnew2.Year.astype(int)
dfnew2 = dfnew2.sort_values(by='Year')
dfnew3 = dfnew2
In [49]:
fig = px.choropleth(dfnew3,
                    locations="Alpha-3 code",
                    featureidkey='properties.ADMIN',
                    color='Genre',
                    hover_name='Country',
                    animation_frame='Year',
                    color_discrete_sequence=px.colors.qualitative.Light24
                   )
fig.update_layout(width=1000, height=800)
fig.show()

The highest searched genres for each country has changed rapidly over time and has been volatile.

In [50]:
k = dfnew.groupby('Genre')[['Country']].count().sort_values(by='Country', ascending=False)[:15]
dfnews = dfnew.groupby(['Genre', 'Year'])[['Country']].count().loc[k.index]
years = dfnew.Year.unique()
In [51]:
d = {'Genre' : [], 'Year' : [], 'Count' : []}
for i in k.index:
    for j in years:
        try:
            d['Genre'].append(i)
            d['Year'].append(j)
            d['Count'].append(dfnews.loc[i].loc[j].iloc[-1])
        except KeyError:
            d['Count'].append(0)
df3 = pd.DataFrame(d)
In [52]:
fig = px.bar(df3, x='Genre', y="Count", color="Genre",
  animation_frame="Year", animation_group="Genre", range_y=[0, 60], color_discrete_sequence=px.colors.qualitative.Light24)
fig.show()

Puzzle had the highest countries where it was first with 55 in 2020. Over time, its searched has increased. 3D peaked in 2014 with 50 countries where it was first. Football peaked in 2018 with 36 countries.

In [53]:
dfnew  = pd.DataFrame()
dict1 = {'Country' : [], 'Game' : []}
def maximus(row):
    dict1['Country'].append(row.geoName)
    dict1['Game'].append(row.iloc[1:].astype(float).idxmax())
for i in range(2014, 2023):
    dict1 = {'Country' : [], 'Game' : []}
    dftemp = pd.read_csv('game' + str(i) + '.csv').dropna()
    dftemp.apply(maximus, axis=1)
    dftemp = pd.DataFrame(dict1)
    dftemp['Year'] = i
    dfnew = pd.concat([dfnew, dftemp])
    
dfnew.loc[dfnew.Country == 'Antigua & Barbuda', 'Country'] = 'Antigua and Barbuda'
dfnew.loc[dfnew.Country == 'Bolivia', 'Country'] = 'Bolivia (Plurinational State of)'
dfnew.loc[dfnew.Country == 'Faroe Islands', 'Country'] = 'Faroe Islands (the)'
dfnew.loc[dfnew.Country == 'Netherlands', 'Country'] = 'Netherlands (the)'
dfnew.loc[dfnew.Country == 'Bahamas', 'Country'] = 'Bahamas (the)'
dfnew.loc[dfnew.Country == 'Bosnia & Herzegovina', 'Country'] = 'Bosnia and Herzegovina'
dfnew.loc[dfnew.Country == 'Trinidad & Tobago', 'Country'] = 'Trinidad and Tobago'
dfnew.loc[dfnew.Country == 'St. Vincent & Grenadines', 'Country'] = 'Saint Vincent and the Grenadines'
dfnew.loc[dfnew.Country == 'British Virgin Islands', 'Country'] = 'Virgin Islands (British)'
dfnew.loc[dfnew.Country == 'U.S. Virgin Islands', 'Country'] = 'Virgin Islands (U.S.)'
dfnew.loc[dfnew.Country == 'Vietnam', 'Country'] = 'Viet Nam'
dfnew.loc[dfnew.Country == 'Venezuela', 'Country'] = 'Venezuela (Bolivarian Republic of)'
dfnew.loc[dfnew.Country == 'United States', 'Country'] = 'United States of America (the)'
dfnew.loc[dfnew.Country == 'United Kingdom', 'Country'] = 'United Kingdom of Great Britain and Northern Ireland (the)'
dfnew.loc[dfnew.Country == 'United Arab Emirates', 'Country'] = 'United Arab Emirates (the)'
dfnew.loc[dfnew.Country == 'Turks & Caicos Islands', 'Country'] = 'Turks and Caicos Islands (the)'
dfnew.loc[dfnew.Country == 'Tanzania', 'Country'] = 'Tanzania, United Republic of'
dfnew.loc[dfnew.Country == 'Taiwan', 'Country'] = 'Taiwan (Province of China)'
dfnew.loc[dfnew.Country == 'Sudan', 'Country'] = 'Sudan (the)'
dfnew.loc[dfnew.Country == 'Sint Maarten', 'Country'] = 'Sint Maarten (Dutch part)'
dfnew.loc[dfnew.Country == 'St. Lucia', 'Country'] = 'Saint Lucia'
dfnew.loc[dfnew.Country == 'St. Kitts & Nevis', 'Country'] = 'Saint Kitts and Nevis'
dfnew.loc[dfnew.Country == 'St. Helena', 'Country'] = 'Saint Helena, Ascension and Tristan da Cunha'
dfnew.loc[dfnew.Country == 'St. Barthélemy', 'Country'] = 'Saint Barthélemy'
dfnew.loc[dfnew.Country == 'Russia', 'Country'] = 'Russian Federation (the)'
dfnew.loc[dfnew.Country == 'Philippines', 'Country'] = 'Philippines (the)'
dfnew.loc[dfnew.Country == 'Palestine', 'Country'] = 'Palestine, State of'
dfnew.loc[dfnew.Country == 'Northern Mariana Islands', 'Country'] = 'Northern Mariana Islands (the)'
dfnew.loc[dfnew.Country == 'Niger', 'Country'] = 'Niger (the)'
dfnew.loc[dfnew.Country == 'Moldova', 'Country'] = 'Moldova (the Republic of)'
dfnew.loc[dfnew.Country == 'Marshall Islands', 'Country'] = 'Marshall Islands (the)'
dfnew.loc[dfnew.Country == 'North Macedonia', 'Country'] = 'Republic of North Macedonia'
dfnew.loc[dfnew.Country == 'Laos', 'Country'] = 'Lao People\'s Democratic Republic (the)'
dfnew.loc[dfnew.Country == 'South Korea', 'Country'] = 'Korea (the Republic of)'
dfnew.loc[dfnew.Country == 'Iran', 'Country'] = 'Iran (Islamic Republic of)'
dfnew.loc[dfnew.Country == 'Gambia', 'Country'] = 'Gambia (the)'
dfnew.loc[dfnew.Country == 'Falkland Islands (Islas Malvinas)', 'Country'] = 'Falkland Islands (the) [Malvinas]'
dfnew.loc[dfnew.Country == 'Dominican Republic', 'Country'] = 'Dominican Republic (the)'
dfnew.loc[dfnew.Country == 'Cook Islands', 'Country'] = 'Cook Islands (the)'
dfnew.loc[dfnew.Country == 'Congo - Kinshasa', 'Country'] = 'Congo (the Democratic Republic of the)'
dfnew.loc[dfnew.Country == 'Congo - Brazzaville', 'Country'] = 'Congo (the)'
dfnew.loc[dfnew.Country == 'Cayman Islands', 'Country'] = 'Cayman Islands (the)'
country = pd.read_csv("CountryCodesThreeLetter.csv", index_col=0)
country = country.dropna()
dfnew2 = dfnew.merge(country, on='Country', how='inner')
dfnew2.Year = dfnew2.Year.astype(int)
dfnew2 = dfnew2.sort_values(by='Year')
In [54]:
fig = px.choropleth(dfnew2,
                    locations="Alpha-3 code",
                    featureidkey='properties.ADMIN',
                    color='Game',
                    hover_name='Country',
                    animation_frame='Year',
                    color_discrete_sequence=px.colors.qualitative.Light24
                   )
fig.update_layout(width=1000, height=800)
fig.show()

Results Findings & Conclusion¶

For each research question, summarize in 2-3 visualizations which will answer the question. Intrepret the results accordingly and give your observation and conclusion. The visualizations should be well presented (apply what you have learnt in Chapter 9 on data communication). The plots shown here could be an enhanced version of the EDA plots, or presented in another format.

Question 1¶

In [55]:
plt.figure(figsize=(25,5))
ax = sns.barplot(x ='genre', y='Count', data = genreCount, palette="turbo")
ax = ax.bar_label(ax.containers[0])
plt.title('Comparison between the number of games for each genre')
plt.ylabel('Number of games')
plt.xlabel('Genre')
plt.annotate('', xy=(5, 2000), xytext=(1, 4000), arrowprops=dict(facecolor='red'))
plt.annotate('Slow decrease in number of game', xy=(1, 2000), xytext=(2, 3100), rotation=-18)
plt.show()

As we can see, most games are under the Action genre, which has 4345 games. It has a very big leap compared to second place which is Shooter with 2162 games. The change in games count for subsequent genres is realtively minute. This shows that apart from the first 2 genres, the amount of games released but the other genres is relatively uniform. However, another suprising thing is that the top 3 genres are action based (Action Adventure is a completely different genre compared to Action), which could be due to the popularity of these genres, due to the quick dopamine rush one can get from these games.

Let us compare with the most searches genres. yearlygenre.csv include the genres which have the most interest over the entire year, for each year from 2004 to 2022. From this data, we would like to see the genres that appeared the most, with a maximum of 1 per year.

In [56]:
dfyear = pd.read_csv('yearlygenre.csv', index_col=0)
dfCount = pd.DataFrame(dfyear.genre.value_counts()).reset_index().iloc[:15]
dfCount.columns = ['genre', 'numYear']
fig = px.bar(dfCount, y='numYear', x='genre', title='Comparison of the number of years a genre was in the top 15 seached genres of the year').update_layout(
    yaxis_title="Number of Years", xaxis_title="Genre"
)
In [57]:
dfCount.merge(genreCount, on='genre', how='inner')
Out[57]:
genre numYear Count Proportion
0 Puzzle 19 1089 4.837420
1 3D 19 1204 5.348259
2 Role-Playing 18 1475 6.552061
3 Shooter 14 2162 9.603767

There is a overlap of 4 games only, with all of them having high number of years where they were part of the top 15 genres with the most interest. Firstly, puzzle video games are very popular especially for casual audiences, which are a larger demographic than hard core video gamers. Many popular puzzle games include Candy Crush, Tetris, etc. Due to the rise in technology, most games are also 3D, with certain retro or indie games which are 2D. With how many gamers play mainstream games, it makes sense that 3D is a popular and common genre. Role-playing and shooters are few of the most widespread genres which have a range of acclaimed games such as Cyberpunk and Valorant, so it makes sense that they are also the most searched. They may also be subjectted to controversy, possibly increasing the amount of searches regarding them.

Question 2¶

In [58]:
plt.figure(figsize=(40, 7))
platCount = platforms.groupby('data')[['name']].count().reset_index().sort_values(by='name',ascending=False)
ax = sns.barplot(x ='data', y='name', data = platCount, palette="turbo")
ax = ax.bar_label(ax.containers[0])
plt.title('Comparison between the number of games released for each platform')
plt.ylabel('Number of Games')
plt.xlabel('Platform')
plt.annotate('', xy=(5, 2000), xytext=(1, 4000), arrowprops=dict(facecolor='red'))
plt.annotate('Large decline from PC onwards', xy=(1, 2000), xytext=(2, 3100), rotation=-20)
plt.show()

PC as a platform has the most number of games, by a mile, with 5087, double of the second place PS4. The top 4 runner ups were all once the platform with the most games in a year, thus it makes sense they are the closest runner ups. There are what looks like stepped pattern in the decrease of the number of games. The platform with the least games was Stadia, which was unsupported due to being clound only, and also the lack of any games from a first party games studio. The last 3 platfroms, before Stadia, all were at the end of their life, and only had gams for 2 years for N64 and DreamCast and 4 years for the PS1. The inverse is true for the PS5 and Xbox Series X, with both launching very recently and only have 3 years of games.

Over here, we reuse the function to extract the genre, but now for dataframe platforms. However, we need the genre and rating too, so we will merge it first with the earlier dataframe to get the rating and genre associated with the games.

Now using this, let us make some heatmaps.

In [59]:
plt.figure(figsize=(17,17))
df_plat = df_plat[df_plat['genre'].isin(genreCount.genre)] # We are only displaying the genres with the most games, this will thus allow us to have more datapoints
dfHeat = df_plat.groupby(['platform','genre'])['rating'].median().reset_index()
dfHeat = dfHeat.pivot('platform','genre','rating')
sns.heatmap(dfHeat,annot=True,cmap='turbo',linewidths=0.4)
plt.title('Median rating by platform and genre')
plt.xlabel('Genre')
plt.ylabel('Platform')
Out[59]:
Text(132.0, 0.5, 'Platform')

There are many missing genres for some platform. One trend is that many recent platforms such as Xbox Series X, Stadia, Switch and PlayStation 5 do not have the genres of Fantasy, Modern and Sci-Fi. A game in a modern setting is not novel anymore, so this could lead to developers not thinking that their game would be under such a genre. For the other 2, they are mainly time consuming games to make, with the scale of the games and also due to creating new lore. Stadia, which is a largely unsupported platform due to being new and having a cloud nature, has a low amount of genres. The missing genres for the Nintendo 64 and PlayStation 1 was due to the low amount of games released for both platforms.

For 2D games, the the DreamCast has two of the most highest median rating, one for First-Person, 92, and one for 2D, 84,. Xbox Series X however has the highest overall median rating for all genres, a 97 for Puzzle. The rating from most of the other genres and platforms are in the 65 to 77 range, with some being less and more. The lowest was a 54 for Adventure in the DreamCast. The PlayStation has the highest number of low rating genres (Less than 65) with 5 while the PlayStation 5 has the highest number of high rating genres (More than 77) with 9 games.

The genre with the most low ratings (Less than 65) is Adventure with 6 while the genre with the most high ratings (More than 77) is 2D with 9.

In [60]:
plt.figure(figsize=(17,17))
dfHeat = df_plat.groupby(['platform','year'])['rating'].median().reset_index()
dfHeat = dfHeat.pivot('platform','year','rating')
sns.heatmap(dfHeat,annot=True,cmap='turbo',linewidths=0.4)
plt.title('Median rating by platform and year')
plt.xlabel('Year')
plt.ylabel('Platform')
Out[60]:
Text(132.0, 0.5, 'Platform')

There is a trend where for plenty of platforms (3DS, DS, DreamCast, GBA, N64, PS2, PS4, Wii U, Xbox One) where the last year of the platforms life has the highest median rating compared to the other years. Some also have the opposite trend, such as Stadia and PS1, where their last year had a significant drop in rating compared to the previous years. Over the years, the rating for many platforms seem to increase, however some do not have a clear trend, such as GBA, PS1, PS2, PS3. The highest median rating is for the Wii U in 2017 whereas the lowest is the PS1 in 2003. The platform with the shortest years of games were Stadia, DreamCast and N64. The platform with the longest years of games released was the PC with 23 while the console with the longest years of games was the PS2 with 11.

The highest median rating was for the Wii in 2017 with a 97, while the lowest median rating was the PS1 in 2003, with a 25. The most common ratings fall in the range of 70 to 80, which was much higher than the one of platforms and genres.

Question 3¶

In [61]:
# Create figure
fig = go.Figure()

fig.add_trace(
    go.Scatter(x=list(datedf.date_formatted), y=signal.savgol_filter(list(datedf.name), 12, 2), name='Smoothened games per month')) # Makes a lineplot for 


# Sets title
fig.update_layout(
    title_text="Timeseries of number of games released",
    yaxis_title='Number of games',
    xaxis_title='Date'
)

# Adds a range slider
fig.update_layout( 
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=6,
                     label="6m",
                     step="month",
                     stepmode="backward"),
                dict(count=1,
                     label="YTD",
                     step="year",
                     stepmode="todate"),
                dict(count=1,
                     label="1y",
                     step="year",
                     stepmode="backward"),
                dict(step="all")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date"
    )
)

fig.show()

We can see a upside down parabola shape from the April of one year to the April of another, with it repeating again and again until 2010, with March being the least for 2008. We can safely say that April from these years had the lowest. The maximum for this parabola was generally October or November, with it being other months as the humps became less pronounced.

In [62]:
fig = make_subplots(specs=[[{"secondary_y": True}]])

# Add traces
fig.add_trace(
    go.Scatter(x=list2, y=sales.groupby('num')[['sales']].median().sales, name="Median sales of Games"),
    secondary_y=False,
)

fig.add_trace(
    go.Scatter(x=list2, y=sales.groupby('num')[['sales']].count().sales, name="Number of Games released"),
    secondary_y=True,
)

# Add figure title
fig.update_layout(
    title_text= "Trend of games sales vs number of games released"
)

# Set x-axis title
fig.update_xaxes(title_text="Months")

# Set y-axes titles
fig.update_yaxes(title_text="Sales / 10e6", secondary_y=False)
fig.update_yaxes(title_text="Number of games", secondary_y=True)

fig.show()

There are large hump for both graphs from September to November. This could be due to the the holiday season of Novemeber and Decmeber, which generally have a lot of holidays (Christmas, Thanksgiving). There is also an increase of sales in May, but no increase in games released. This increase in sales could be due to the summer holidays in certain countries, however developers may prioritise the winter holidays more. There is a drop in games sales and number of games released in July, January and December. This could be due to games being sold out, for the sales. For January and December, it makes sense not to release games as it would be too late to be in the Game Awards, or will be a distant memory when the next Game Awards come.

Question 4¶

In [63]:
plt.figure(figsize=(10,10))
df['rating'].hist(edgecolor='black')
plt.title('Histogram of rating')
plt.ylabel('Number of games')
plt.xlabel('Rating')
ax = plt.axvline(df['rating'].median(),color='r',linestyle='dashed')
plt.annotate('Median: ' + str(df['rating'].median()), xy=(32, 72), xytext=(53, 3500), fontsize=15)
plt.show()
In [64]:
nrow=3
ncol=5
 
genres = genreCount.genre
fig = plt.figure(figsize=(16,8))
gs = fig.add_gridspec(nrow, ncol)
axes = gs.subplots(sharex=True, sharey=True)


df_list = []
for i in genres:
    df_list.append(df_genres.loc[df_genres.genre == i,'rating'])
sns.set_color_codes("bright")
for count in range(nrow * ncol):
    nrow, ncol = divmod(count, 3)
    df_list[count].hist(edgecolor='black', alpha=0.3, color='red', ax=axes[ncol, nrow])
    axes[ncol, nrow].text(30, 750, str(genres.iloc[count]))
    
    axes[ncol, nrow].axvline(df['rating'].median(),color='b',linestyle='dashed') # This shows the median of all game ratings
    axes[ncol, nrow].axvline(df_list[count].median(),color='g',linestyle='dashed') # This shows the median of the ratings for the games of these genres
    
plt.suptitle("Rating distribution across genres\nGreen line is the median rating of genre, Blue line is overall median rating")
plt.show()

The median rating of all the genres are very close to the median rating of all games. However, some genres have slightly higher ratings, which are Role-Playing, Platformer, Strategy and 2D (which has the highest median rating). Some also have lower ratings, which are Action, Shooter, 3D (which has the lowest median rating), Arcade and Modern.

In [65]:
nrow=5
ncol=4
 
years = df.year.unique()
fig = plt.figure(figsize=(16,8))
gs = fig.add_gridspec(nrow, ncol)
axes = gs.subplots(sharex=True, sharey=True)


df_list = []
for i in years:
    df_list.append(df_genres.loc[df_genres.year == i,'rating'])

for count in range(nrow * ncol):
    nrow, ncol = divmod(count, 5)
    df_list[count].hist(edgecolor='black', alpha=0.3, color='red', ax=axes[ncol, nrow])
    axes[ncol, nrow].text(30, 500, str(years[count]))
    axes[ncol, nrow].axvline(df['rating'].median(),color='b',linestyle='dashed') # This shows the median of all game ratings
    axes[ncol, nrow].axvline(df_list[count].median(),color='g',linestyle='dashed') # This shows the median of the ratings of games from the year
plt.suptitle("Rating distribution across years\nGreen line is the median rating of genre, Blue line is overall median rating")
plt.show()

The median rating of all the years are very close to the median rating of all games, however, there are larger changes then genre. 2022 has a much higher median rating than the median, while 2007 has the least. There is also another trend where from 2017 to 2022, the median rating for the year was higher than the median rating of all games. However, from 2005 to 2011, the median rating was lower than the median rating of all games

Question 5¶

In [66]:
years = dfyear.year.unique()
df_list = []
for i in years:
    df_list.append(dfyear.loc[dfyear.year == i,['genre', 'Searches']])

fig = make_subplots(
    rows=3, cols=6,
    specs = [[{"type": "pie"},{"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}],
            [{"type": "pie"},{"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}],
            [{"type": "pie"},{"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}, {"type": "pie"}]],
            subplot_titles=years[:18].astype(str))

for i in range(1, 4):
    for j in range(1, 7):
        fig.add_trace(go.Pie(values=dfyear.loc[dfyear.year == years[(i-1) * 6 + j - 1], 'Searches'].iloc[:5], labels=dfyear.loc[dfyear.year == years[(i-1) * 6 + j - 1], 'genre'].iloc[:5]),
                      row=i, col=j)


fig.update_layout(height=700, width=1150, showlegend=True, title_text='Percentage among top 5 most searched genre each year')
fig.update_traces(textinfo='none')
fig.show()

Puzzle has the highest perentage accross all the years, except for 2014 to 2010, where 3D games had the highest percentage of searches. It was also the only genre in all the years. From 2022 to 2017, board games had the second highest percentage. Role-playing was second from 2007 to 2005. Board games was second from 2017 to 2022. The highest percentage was 38.8% for Puzzle in 2020. The lowest percentage was 11.8% for 3D in 2020.

In [67]:
fig = px.choropleth(dfnew3,
                    locations="Alpha-3 code",
                    featureidkey='properties.ADMIN',
                    color='Genre',
                    hover_name='Country',
                    animation_frame='Year',
                    color_discrete_sequence=px.colors.qualitative.Light24
                   )
fig.update_layout(width=1000, height=800)
fig.show()

The highest searched genres for each country has changed rapidly over time and has been volatile. However, puzzle has been consistently the highest searched genre in Australia and the United States. 3D has also been consistent over the years, but it varies in which country it is in

In [68]:
dfnew2.loc[((dfnew2.Year == 2015) & (dfnew2.Game == 'Fallout 4: Automatron')), 'Game'] = 'Fallout 4'
In [69]:
fig = px.choropleth(dfnew2,
                    locations="Alpha-3 code",
                    featureidkey='properties.ADMIN',
                    color='Game',
                    hover_name='Country',
                    animation_frame='Year',
                    color_discrete_sequence=px.colors.qualitative.Light24
                   )
fig.update_layout(width=1000, height=800)
fig.show()

For each year, there was a stand out game which dominates all the country. For 2014, it was World of Warcraft: Warlords of Draenor. For 2015, the most searched Fallout 4, while its DLC its the breakout game of 2016. For 2017, the game with the highest reach was The Elder Scrolls V: Skyrim and 2018 it was Fortnite. FIFA 20 was the breakout game in 2019. Call of Duty: Warzone was the game with the highest country where is was the most searched. Call of Duty: Vanguard was the stand out game in 2021, and finally Elden ring in 2022.

Recommendations or Further Works¶

State any recommendations, improvements or further works.

For improvements, I would use another source other than Google Trends for search data because of it not having id codes for all games and genres, leading to less accuracy in the search data. I would either use another tool in addition with Google Trends, or use the other tool only. I would also like to find another way to get the searches specified for Console and PC games, and not mobile games, which are also include for the interest in genres.

For further work, I hope to extend this project by looking at more stats and seeing how they could be correleated, such as the developer of the game, the amount of players playing the game in a certain week, sales price and whether it is a GOTY awards winner.

References¶

Cite any references made, and links where you obtained the data. You may wish to read about how to use markdown in Jupyter notebook to make your report easier to read. https://www.ibm.com/docs/en/db2-event-store/2.0.0?topic=notebooks-markdown-jupyter-cheatsheet

Appendix¶

In [ ]:
 

This is the cleaning

In [70]:
df = pd.read_csv('cleaningMeta2.csv',index_col=0)
In [71]:
df.loc[df.name == '.hack//G.U. Last Recode', 'Code'] = '/g/11g8txr50k'
df.loc[df.name == 'Famicom Detective Club: The Missing Heir', 'Code'] = 'Famicom Detective Club: The Missing Heir'
df.loc[df.name == 'Hextech Mayhem: A League of Legends Story', 'Code'] = 'Hextech Mayhem: A League of Legends Story'
df.loc[df.name == 'Darksiders Genesis', 'Code'] = '/m/011l5s9c'
df.loc[df.name == 'Pokemon Sword / Shield: The Crown Tundra', 'Code'] = '/g/11jrgdnfk8'
df.loc[df.name == 'void tRrLM(); //Void Terrarium', 'Code'] = 'void tRrLM(); //Void Terrarium'
df.loc[df.name == 'Pokemon Sword / Shield: The Isle of Armor', 'Code'] = '/g/11k6f9p9dc'
df.loc[df.name == 'Resident Evil: Resistance', 'Code'] = '/g/11hdvdpwm3'
df.loc[df.name == 'Infini', 'Code'] = 'Infini'
df.loc[df.name == 'Final Fantasy VII', 'Code'] = '/m/0dvzv'
df.loc[df.name == 'Pokemon Sword / Shield Dual Pack', 'Code'] = '/g/11fk16tpkz'
df.loc[df.name == 'FIFA 20', 'Code'] = '/g/11hyd49rk6'
df.loc[df.name == 'Fate/Extella Link', 'Code'] = '/g/11fk0wkvgs'
df.loc[df.name == 'Devil May Cry', 'Code'] = '/m/031_55'
df.loc[df.name == "Marvel's Spider-Man", 'Code'] = '/g/11bzx4tgt5'
df.loc[df.name == "Dragon Quest Builders", 'Code'] = '/g/11b807hz5j'
df.loc[df.name == "Crash Bandicoot N. Sane Trilogy", 'Code'] = '/g/11c1ldfl8b'
df.loc[df.name == "Life is Strange 2", 'Code'] = 'Life is Strange 2'
df.loc[df.name == "Luigi's Mansion", 'Code'] = '/g/1q64lm9r5'
df.loc[df.name == "Tour de France 2018", 'Code'] = 'Tour de France 2018'
df.loc[df.name == "Hollow", 'Code'] = 'Hollow'
df.loc[df.name == "Forza Horizon 3: Hot Wheels", 'Code'] = '/g/11bzs55v4g'
df.loc[df.name == "Monster Hunter Stories", 'Code'] = '/g/11f006gvtd'
df.loc[df.name == "The Elder Scrolls Online: Morrowind", 'Code'] = '/g/11dfpjqlr4'
df.loc[df.name == "LEGO Marvel Super Heroes 2", 'Code'] = '/g/11dd_sgr0t'
df.loc[df.name == "Disney/Pixar Cars 3: Driven to Win", 'Code'] = '/g/11dfj4rps3'
df.loc[df.name == "Fate/Extella: The Umbral Star", 'Code'] = '/g/11c438hg8h'
df.loc[df.name == "Rush: A Disney / Pixar Adventure", 'Code'] = '/m/0kz2xtj'
df.loc[df.name == "Total War: WARHAMMER", 'Code'] = '/g/11bycc23kh'
df.loc[df.name == "DiRT Rally", 'Code'] = '/m/0134z8m5'
df.loc[df.name == "Ratchet & Clank", 'Code'] = '/m/010wb8qx'
df.loc[df.name == "Unravel", 'Code'] = 'Unravel'
df.loc[df.name == "Battlefleet Gothic: Armada", 'Code'] = '/m/012npm6w'
df.loc[df.name == "Valley", 'Code'] = 'Valley'
df.loc[df.name == "Transport Fever", 'Code'] = '/g/11c5m3m5t6'
df.loc[df.name == "Bridge Constructor", 'Code'] = '/g/11c67whk2l'
df.loc[df.name == "Tron RUN/r", 'Code'] = '/g/11bzq2_5tx'
df.loc[df.name == "Life is Strange", 'Code'] = '/g/0129c4zc'
df.loc[df.name == "Hand of Fate", 'Code'] = '/m/0134jnqz'
df.loc[df.name == "Inazuma Eleven Go: Chrono Stones: Wildfire", 'Code'] = 'Inazuma Eleven Go: Chrono Stones: Wildfire'
df.loc[df.name == "Star Wars Battlefront", 'Code'] = '/m/05b10f9'
df.loc[df.name == "Dying Light", 'Code'] = '/m/0vpvzzc'
df.loc[df.name == "The Evil Within: The Consequence", 'Code'] = 'The Evil Within: The Consequence'
df.loc[df.name == "Mercenaries Saga 2: Order Of The Silver Eagle", 'Code'] = 'Mercenaries Saga 2: Order Of The Silver Eagle'
df.loc[df.name == "Divinity: Original Sin", 'Code'] = '/m/0j_3rsw'
df.loc[df.name == "Super Mega Baseball", 'Code'] = '/m/013679bm'
df.loc[df.name == "Frozen Synapse Prime", 'Code'] = '/m/013679bm'
df.loc[df.name == "Call of Duty: Advanced Warfare", 'Code'] = '/m/010gp6bl'
df.loc[df.name == "Marvel Heroes 2015", 'Code'] = 'Marvel Heroes 2015'
df.loc[df.name == "The Evil Within", 'Code'] = 'The Evil Within'
df.loc[df.name == "Azure Striker Gunvolt", 'Code'] = '/g/1q620sbxf'
df.loc[df.name == "Surge Deluxe", 'Code'] = 'Surge Deluxe'
df.loc[df.name == "Risk of Rain", 'Code'] = '/m/0_frnxs'
df.loc[df.name == "The Denpa Men 2: Beyond the Waves", 'Code'] = 'The Denpa Men 2: Beyond the Waves'
df.loc[df.name == "Call of Duty: Black Ops II", 'Code'] = '/m/6u0ddg1nk'
df.loc[df.name == "Shelter", 'Code'] = 'Shelter'
df.loc[df.name == "Dynasty Warriors 8", 'Code'] = '/m/0nbv0r9'
df.loc[df.name == "Picross e3", 'Code'] = 'Picross e3'
df.loc[df.name == "Dynasty Warriors 7 Empires", 'Code'] = '/g/11cn68sl0q'
df.loc[df.name == "Legend of Dungeon", 'Code'] = 'Legend of Dungeon'
df.loc[df.name == "Senran Kagura Burst", 'Code'] = '/g/119x73_3j'
df.loc[df.name == "Pac-Man and the Ghostly Adventures", 'Code'] = '/m/010fhj63'
df.loc[df.name == "Horizon", 'Code'] = 'Horizon 4X'
df.loc[df.name == "Marvel Heroes", 'Code'] = 'Marvel Heroes'
df.loc[df.name == "Sniper: Ghost Warrior 2", 'Code'] = '/m/0gx1s3k'
df.loc[df.name == "Marvel Heroes", 'Code'] = 'Marvel Heroes'
df.loc[df.name == "Farming Simulator", 'Code'] = '/g/11cny30n9v'
df.loc[df.name == "FIFA Soccer 13", 'Code'] = '/m/0kyqzxz'
df.loc[df.name == "Forza Horizon", 'Code'] = '/m/0j674jh'
df.loc[df.name == "New Super Mario Bros. U", 'Code'] = '/m/0gwygtq'
df.loc[df.name == "Crusader Kings II", 'Code'] = '/m/0gx2sw9'
df.loc[df.name == "SoulCalibur V", 'Code'] = '/m/0gtvxhq'
df.loc[df.name == "NCAA Football 13", 'Code'] = '/m/0j3gdc1'
df.loc[df.name == "Retro/Grade", 'Code'] = 'Retro/Grade'
df.loc[df.name == "Marvel Pinball 3D", 'Code'] = 'Marvel Pinball 3D'
df.loc[df.name == "Zumba Fitness Rush", 'Code'] = 'Zumba Fitness Rush'
df.loc[df.name == "Ninja Gaiden Sigma Plus", 'Code'] = 'Ninja Gaiden Sigma Plus'
df.loc[df.name == "Disney/Pixar Brave", 'Code'] = '/m/0j62gsp'
df.loc[df.name == "One Piece: Pirate Warriors", 'Code'] = 'One Piece Pirate Warriors'
df.loc[df.name == "Disney Epic Mickey: The Power of Illusion", 'Code'] = '/m/0j7kknc'
df.loc[df.name == "Realms of Ancient War", 'Code'] = 'Realms of Ancient War'
df.loc[df.name == "Dark Souls", 'Code'] = 'Dark Souls'
df.loc[df.name == "Unity of Command", 'Code'] = '/m/0kz2ggb'
df.loc[df.name == "Orcs Must Die!", 'Code'] = '/m/0gjblh5'
df.loc[df.name == "Madden NFL 12", 'Code'] = 'Madden NFL 12'
df.loc[df.name == "Call of Duty: Black Ops - Annihilation", 'Code'] = '/m/0bwm8y4'
df.loc[df.name == "FIFA Soccer 11", 'Code'] = 'FIFA 11'
df.loc[df.name == "Split/Second", 'Code'] = '/m/05p7dd3'
df.loc[df.name == "Madden NFL 11", 'Code'] = 'Madden NFL 11'
df.loc[df.name == "Dance Central", 'Code'] = '/m/0c3vh7y'
df.loc[df.name == "Disney/Pixar Toy Story 3", 'Code'] = '/m/0bbxrf3'
df.loc[df.name == "Art Academy", 'Code'] = 'Art Academy'
df.loc[df.name == "Dark Fall 3: Lost Souls", 'Code'] = 'Dark Fall 3: Lost Souls'
df.loc[df.name == "Kinect Sports", 'Code'] = '/m/0cc7732'
df.loc[df.name == "MotoGP 09/10", 'Code'] = '/m/0kyr263'
df.loc[df.name == "Sackboy's Prehistoric Moves", 'Code'] = "Sackboy's Prehistoric Moves"
df.loc[df.name == "Blood Drive", 'Code'] = 'Blood Drive'
df.loc[df.name == "Tom Clancy's Ghost Recon", 'Code'] = '/m/012blkpq'
df.loc[df.name == "Starpoint Gemini", 'Code'] = '/m/09rwr8z'
df.loc[df.name == "Football Manager 2010", 'Code'] = 'Football Manager 2010'
df.loc[df.name == "LocoRoco 2", 'Code'] = '/m/04y5lw2'
df.loc[df.name == "ZEN Pinball", 'Code'] = '/m/0102g27c'
df.loc[df.name == "The Path", 'Code'] = 'The Path'
df.loc[df.name == "Wings of Prey", 'Code'] = 'Wings of Prey'
df.loc[df.name == "Grand Slam Tennis", 'Code'] = 'Grand Slam Tennis'
df.loc[df.name == "ArmA II", 'Code'] = '/m/02r2br8'
df.loc[df.name == "Resident Evil Archives: Resident Evil", 'Code'] = '/g/120x6jyz'
df.loc[df.name == "FIFA Manager 10", 'Code'] = '/m/05z_f50'
df.loc[df.name == "Kingdom Hearts 358/2 Days", 'Code'] = '/m/03c2kfr'
df.loc[df.name == "Fate/Unlimited Codes", 'Code'] = '/m/064qwbx'
df.loc[df.name == "Killing Floor", 'Code'] = '/m/05zl3dg'
df.loc[df.name == "Onslaught", 'Code'] = 'Onslaught'
df.loc[df.name == "Disney/Pixar Up", 'Code'] = 'Disney/Pixar Up'
df.loc[df.name == "Pokemon Rumble", 'Code'] = 'Pokemon Rumble'
df.loc[df.name == "Fortix", 'Code'] = 'Fortix'
df.loc[df.name == "Disney/Pixar Cars Race-O-Rama", 'Code'] = '/m/06zq8vm'
df.loc[df.name == "Disney/Pixar Toy Story Mania!", 'Code'] = '/m/05szv5k'
df.loc[df.name == "NBA Unrivaled", 'Code'] = 'NBA Unrivaled'
df.loc[df.name == "FIFA Soccer 09", 'Code'] = '/m/04czf4m'
df.loc[df.name == "FIFA Soccer 09 All-Play", 'Code'] = '/m/04czf4m'
df.loc[df.name == "Madden NFL 09", 'Code'] = '/m/02w6zqt'
df.loc[df.name == "Yakuza 2", 'Code'] = '/m/0gnlkv'
df.loc[df.name == "Assault Heroes 2", 'Code'] = '/m/03wcc37'
df.loc[df.name == "Omega Five", 'Code'] = 'Omega Five'
df.loc[df.name == "Guitar Hero: On Tour", 'Code'] = '/m/05szsdh'
df.loc[df.name == "Mario & Sonic at the Olympic Games", 'Code'] = '/m/02q8x4x'
df.loc[df.name == "Star Wars The Clone Wars: Jedi Alliance", 'Code'] = 'Star Wars The Clone Wars: Jedi Alliance'
df.loc[df.name == "Need for Speed Undercover", 'Code'] = '/m/047ph68'
df.loc[df.name == "AC/DC Live: Rock Band Track Pack", 'Code'] = '/g/121qyctc'
df.loc[df.name == "Sega Bass Fishing", 'Code'] = '/m/0dnlp8'
df.loc[df.name == "Warriors Orochi", 'Code'] = '/m/0282t9n'
df.loc[df.name == "Legendary", 'Code'] = 'Legendary'
df.loc[df.name == "Sega Bass Fishing", 'Code'] = '/m/0dnlp8'
df.loc[df.name == "The Witcher", 'Code'] = '/m/0gs0nr'
df.loc[df.name == "Hot Shots Tennis", 'Code'] = 'Hot Shots Tennis'
df.loc[df.name == "Disney/Pixar Cars Mater-National Championship", 'Code'] = '/m/02qjcgg'
df.loc[df.name == "Touch Detective 2 1/2", 'Code'] = '/m/02w0rh6'
df.loc[df.name == "Disney/Pixar Ratatouille", 'Code'] = '/m/02q532n'
df.loc[df.name == "Hot Shots Tennis", 'Code'] = 'Hot Shots Tennis'
df.loc[df.name == ".hack//GU Vol. 2//Reminisce", 'Code'] = '/m/0kymjcg'
df.loc[df.name == ".hack//G.U. vol. 3//Redemption", 'Code'] = '/m/07xgyjt'
df.loc[df.name == "Wii Play", 'Code'] = '/m/0h0604'
df.loc[df.name == "Fury", 'Code'] = 'Fury'
df.loc[df.name == "Monster Jam", 'Code'] = 'Monster Jam'
df.loc[df.name == "New Super Mario Bros.", 'Code'] = '/m/05_wxv'
df.loc[df.name == "Kingdom Hearts II", 'Code'] = '/m/05sp5n'
df.loc[df.name == "Call of Duty 3", 'Code'] = '/m/07z_fn'
df.loc[df.name == "OutRun 2006: Coast 2 Coast", 'Code'] = '/m/097pdv'
df.loc[df.name == "Race Driver 2006", 'Code'] = 'Race Driver 2006'
df.loc[df.name == "Need for Speed: Carbon", 'Code'] = '/m/0d1k7_'
df.loc[df.name == "Call of Duty 3", 'Code'] = '/m/07z_fn'
df.loc[df.name == "Need for Speed Carbon", 'Code'] = '/m/0d1k7_'
df.loc[df.name == "Naruto: Ultimate Ninja", 'Code'] = 'Naruto: Ultimate Ninja'
df.loc[df.name == "Disney/Pixar Cars", 'Code'] = '/m/0ck9j5'
df.loc[df.name == "Naruto: Clash of Ninja", 'Code'] = '/m/0792qj'
df.loc[df.name == "Astonishia Story", 'Code'] = '/m/0102m4pq'
df.loc[df.name == ".hack//G.U. vol. 1//Rebirth", 'Code'] = '/m/0kypyb4'
df.loc[df.name == "Night Watch", 'Code'] = 'Night Watch'
df.loc[df.name == "MotoGP", 'Code'] = '/m/09gd_q'
df.loc[df.name == "NASCAR", 'Code'] = '/m/0dtxz_'
df.loc[df.name == "Tokyo Xtreme Racer DRIFT", 'Code'] = '/m/027bpfk'
df.loc[df.name == "God of War", 'Code'] = '/m/05h8hz'
df.loc[df.name == "Game Tycoon", 'Code'] = 'Game Tycoon'
df.loc[df.name == "Battlefield 2", 'Code'] = '/m/03f_ln'
df.loc[df.name == "Guild Wars", 'Code'] = '/m/026br6k'
df.loc[df.name == "Mercenaries", 'Code'] = '/m/059z9v'
df.loc[df.name == "Need for Speed: Most Wanted (2005)", 'Code'] = '/m/08yjg0'
df.loc[9861, 'Code'] = '/m/08yjg0'
df.loc[df.name == "Super Monkey Ball Deluxe", 'Code'] = '/m/0dkdlp'
df.loc[df.name == "MLB", 'Code'] = '/m/0c13fb'
df.loc[df.name == "Star Wars: Battlefront II", 'Code'] = '/m/069jjt'
df.loc[df.name == "Lego Star Wars", 'Code'] = 'Lego Star Wars'
df.loc[df.name == "LEGO Star Wars", 'Code'] = 'Lego Star Wars'
df.loc[df.name == "The King of Fighters 02/03", 'Code'] = 'The King of Fighters 02/03'
df.loc[df.name == "In the Groove", 'Code'] = '/m/03qt3h'
df.loc[df.name == "Dr. Mario / Puzzle League", 'Code'] = '/m/09x3fj'
df.loc[df.name == "Dragon Ball Z: Budokai Tenkaichi", 'Code'] = 'Dragon Ball Z: Budokai Tenkaichi'
df.loc[df.name == "Romance of the Three Kingdoms X", 'Code'] = '/m/06_14j'
df.loc[df.name == "DK: King of Swing", 'Code'] = '/m/06gg3z'
df.loc[df.name == "Cold War", 'Code'] = 'Cold War'
df.loc[df.name == "Chaos Field", 'Code'] = '/m/0dsttc'
df.loc[df.name == "Shining Tears", 'Code'] = '/m/08y2lx'
df.loc[df.name == "Dead to Rights: Reckoning", 'Code'] = '/m/02x3z76'
df.loc[df.name == "Death by Degrees", 'Code'] = '/m/073jy7'
df.loc[df.name == "World of Warcraft", 'Code'] = '/m/021dvx'
df.loc[df.name == "Rome: Total War", 'Code'] = '/m/02_wm5'
df.loc[df.name == "Ninja Gaiden", 'Code'] = '/m/0fd2rd'
df.loc[df.name == "Pikmin 2", 'Code'] = '/m/02xn2f'
df.loc[df.name == "Viewtiful Joe", 'Code'] = '/m/03nxpv'
df.loc[df.name == "Call of Duty: United Offensive", 'Code'] = '/m/031_9z'
df.loc[df.name == "Tales of Symphonia", 'Code'] = '/m/03kd6v'
df.loc[df.name == "Warhammer 40,000: Dawn of War", 'Code'] = '/m/03q8_3'
df.loc[df.name == "Metal Gear Solid: The Twin Snakes", 'Code'] = '/m/02wlm1'
df.loc[df.name == "Classic NES Series: The Legend of Zelda", 'Code'] = '/m/01633s'
df.loc[df.name == "NBA Ballers", 'Code'] = '/m/09yrt1'
df.loc[df.name == "Shin Megami Tensei: Nocturne", 'Code'] = '/m/05pgsp'
df.loc[df.name == "Phantom Brave", 'Code'] = '/m/047b8h'
df.loc[df.name == "RollerCoaster Tycoon 3", 'Code'] = '/m/044yrn'
df.loc[df.name == "Mario vs. Donkey Kong", 'Code'] = '/m/040gqk'
df.loc[df.name == "TOCA Race Driver 2: The Ultimate Racing Simulator", 'Code'] = '/m/05b6nch'
df.loc[df.name == "Mario Power Tennis", 'Code'] = '/m/046tc0'
df.loc[df.name == "Syberia II", 'Code'] = '/m/050ff2'
df.loc[df.name == "Final Fantasy Crystal Chronicles", 'Code'] = '/m/0262yb'
df.loc[df.name == "Tony Hawk's Underground 2", 'Code'] = 'Tony Hawk\'s Underground 2'
df.loc[df.name == "NCAA Football 2005", 'Code'] = 'NCAA Football 2005'
df.loc[df.name == "Star Wars: Battlefront", 'Code'] = '/m/044ccj'
df.loc[df.name == "FIFA Soccer 2005", 'Code'] = 'FIFA Soccer 2005'
df.loc[df.name == "R-Type Final", 'Code'] = '/m/06q6yp'
df.loc[df.name == "Dance Dance Revolution Extreme", 'Code'] = '/m/04ssjh'
df.loc[df.name == "Evil Genius", 'Code'] = '/m/03xbk0'
df.loc[df.name == "Feel the Magic: XY/XX", 'Code'] = '/m/044_v_'
df.loc[df.name == "TrackMania (2003)s", 'Code'] = 'TrackMania'
df.loc[df.name == "Crusader Kings", 'Code'] = '/m/079rt6'
df.loc[df.name == "Samurai Warriors: Xtreme Legends", 'Code'] = 'Samurai Warriors: Xtreme Legends'
df.loc[df.name == "Sega Superstars", 'Code'] = '/m/0459_r'
df.loc[df.name == "Dynasty Warriors 4: Empires", 'Code'] = 'Dynasty Warriors 4: Empires'
df.loc[df.name == ".hack//Quarantine Part 4", 'Code'] = '/m/07k7c5'
df.loc[df.name == "Grand Theft Auto", 'Code'] = '/m/0c40ym'
df.loc[df.name == "Monster Hunter", 'Code'] = '/m/04zshp'
df.loc[df.name == "True Crime: Streets of LA", 'Code'] = 'True Crime: Streets of LA'
df.loc[df.name == "Excitebike", 'Code'] = '/m/02sdnc'
df.loc[df.name == "The Incredibles", 'Code'] = 'The Incredibles'
df.loc[df.name == "Lifeline", 'Code'] = 'Lifeline'
df.loc[df.name == "Spyro Orange: The Cortex Conspiracy", 'Code'] = 'Spyro Orange: The Cortex Conspiracy'
df.loc[df.name == "Rapala Pro Fishing", 'Code'] = '/m/0kz1jrh'
df.loc[df.name == "Classic NES Series: Metroid", 'Code'] = '/m/04d5rb'
df.loc[df.name == "Disney/Pixar The Incredibles", 'Code'] = 'The Incredibles'
df.loc[df.name == "Two Thrones", 'Code'] = '/m/02wvl8c'
df.loc[df.name == "Under the Skin", 'Code'] = 'Under the Skin'
df.loc[df.name == "ChoroQ", 'Code'] = 'ChoroQ'
In [72]:
df = df.drop_duplicates(subset=['Code'], keep='last')